algebra.module.graded_module
⟷
Mathlib.Algebra.Module.GradedModule
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -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
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -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
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -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`
mathlib commit https://github.com/leanprover-community/mathlib/commit/b1abe23ae96fef89ad30d9f4362c307f72a55010
@@ -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`. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -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"
mathlib commit https://github.com/leanprover-community/mathlib/commit/32a7e535287f9c73f2e4d2aef306a39190f0b504
@@ -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
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/2a0ce625dbb0ffbc7d1316597de0b25c1ec75303
@@ -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]
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/31c24aa72e7b3e5ed97a8412470e904f82b81004
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/5f25c089cb34db4db112556f23c50d12da81b297
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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 _}
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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.
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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.
mathlib commit https://github.com/leanprover-community/mathlib/commit/ef95945cd48c932c9e034872bd25c3c220d9c946
@@ -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.
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/f8c79b0a623404854a2902b836eac32156fd7712
@@ -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 _ _
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
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)
@@ -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
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.
@@ -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
-/
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>
@@ -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,
Nsmul
-> NSMul
, Zpow
-> ZPow
, etc (#9067)
Normalising to naming convention rule number 6.
@@ -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`
+
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:
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 )
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.
@@ -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 𝓐 𝓜
And fix some names in comments where this revealed issues
@@ -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 :=
@@ -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) :
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -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]
@@ -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
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.
@@ -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,
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>
@@ -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]
@@ -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]
@@ -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.
I ran codespell Mathlib
and got tired halfway through the suggestions.
@@ -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
-/
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)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 threadThe unported dependencies are