algebra.direct_sum.basicMathlib.Algebra.DirectSum.Basic

This file has been ported!

Changes since the initial port

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

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -3,7 +3,7 @@ Copyright (c) 2019 Kenny Lau. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kenny Lau
 -/
-import Data.Dfinsupp.Basic
+import Data.DFinsupp.Basic
 import GroupTheory.Submonoid.Operations
 
 #align_import algebra.direct_sum.basic from "leanprover-community/mathlib"@"13a5329a8625701af92e9a96ffc90fa787fff24d"
Diff
@@ -3,8 +3,8 @@ Copyright (c) 2019 Kenny Lau. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kenny Lau
 -/
-import Mathbin.Data.Dfinsupp.Basic
-import Mathbin.GroupTheory.Submonoid.Operations
+import Data.Dfinsupp.Basic
+import GroupTheory.Submonoid.Operations
 
 #align_import algebra.direct_sum.basic from "leanprover-community/mathlib"@"13a5329a8625701af92e9a96ffc90fa787fff24d"
 
Diff
@@ -394,7 +394,7 @@ indexed by `ι`.
 When `S = submodule _ M`, this is available as a `linear_map`, `direct_sum.coe_linear_map`. -/
 protected def coeAddMonoidHom {M S : Type _} [DecidableEq ι] [AddCommMonoid M] [SetLike S M]
     [AddSubmonoidClass S M] (A : ι → S) : (⨁ i, A i) →+ M :=
-  toAddMonoid fun i => AddSubmonoidClass.Subtype (A i)
+  toAddMonoid fun i => AddSubmonoidClass.subtype (A i)
 #align direct_sum.coe_add_monoid_hom DirectSum.coeAddMonoidHom
 -/
 
Diff
@@ -2,15 +2,12 @@
 Copyright (c) 2019 Kenny Lau. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kenny Lau
-
-! This file was ported from Lean 3 source module algebra.direct_sum.basic
-! leanprover-community/mathlib commit 13a5329a8625701af92e9a96ffc90fa787fff24d
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Data.Dfinsupp.Basic
 import Mathbin.GroupTheory.Submonoid.Operations
 
+#align_import algebra.direct_sum.basic from "leanprover-community/mathlib"@"13a5329a8625701af92e9a96ffc90fa787fff24d"
+
 /-!
 # Direct sum
 
Diff
@@ -47,7 +47,7 @@ deriving AddCommMonoid, Inhabited
 -/
 
 instance [∀ i, AddCommMonoid (β i)] : CoeFun (DirectSum ι β) fun _ => ∀ i : ι, β i :=
-  Dfinsupp.hasCoeToFun
+  DFinsupp.hasCoeToFun
 
 scoped[DirectSum] notation3"⨁ "(...)", "r:(scoped f => DirectSum _ f) => r
 
@@ -60,7 +60,7 @@ section AddCommGroup
 variable [∀ i, AddCommGroup (β i)]
 
 instance : AddCommGroup (DirectSum ι β) :=
-  Dfinsupp.addCommGroup
+  DFinsupp.addCommGroup
 
 variable {β}
 
@@ -98,36 +98,36 @@ variable (β)
 and has coefficient `x i` for `i` in `s`. -/
 def mk (s : Finset ι) : (∀ i : (↑s : Set ι), β i.1) →+ ⨁ i, β i
     where
-  toFun := Dfinsupp.mk s
-  map_add' _ _ := Dfinsupp.mk_add
-  map_zero' := Dfinsupp.mk_zero
+  toFun := DFinsupp.mk s
+  map_add' _ _ := DFinsupp.mk_add
+  map_zero' := DFinsupp.mk_zero
 #align direct_sum.mk DirectSum.mk
 -/
 
 #print DirectSum.of /-
 /-- `of i` is the natural inclusion map from `β i` to `⨁ i, β i`. -/
 def of (i : ι) : β i →+ ⨁ i, β i :=
-  Dfinsupp.singleAddHom β i
+  DFinsupp.singleAddHom β i
 #align direct_sum.of DirectSum.of
 -/
 
 #print DirectSum.of_eq_same /-
 @[simp]
 theorem of_eq_same (i : ι) (x : β i) : (of _ i x) i = x :=
-  Dfinsupp.single_eq_same
+  DFinsupp.single_eq_same
 #align direct_sum.of_eq_same DirectSum.of_eq_same
 -/
 
 #print DirectSum.of_eq_of_ne /-
 theorem of_eq_of_ne (i j : ι) (x : β i) (h : i ≠ j) : (of _ i x) j = 0 :=
-  Dfinsupp.single_eq_of_ne h
+  DFinsupp.single_eq_of_ne h
 #align direct_sum.of_eq_of_ne DirectSum.of_eq_of_ne
 -/
 
 #print DirectSum.support_zero /-
 @[simp]
 theorem support_zero [∀ (i : ι) (x : β i), Decidable (x ≠ 0)] : (0 : ⨁ i, β i).support = ∅ :=
-  Dfinsupp.support_zero
+  DFinsupp.support_zero
 #align direct_sum.support_zero DirectSum.support_zero
 -/
 
@@ -135,21 +135,21 @@ theorem support_zero [∀ (i : ι) (x : β i), Decidable (x ≠ 0)] : (0 : ⨁ i
 @[simp]
 theorem support_of [∀ (i : ι) (x : β i), Decidable (x ≠ 0)] (i : ι) (x : β i) (h : x ≠ 0) :
     (of _ i x).support = {i} :=
-  Dfinsupp.support_single_ne_zero h
+  DFinsupp.support_single_ne_zero h
 #align direct_sum.support_of DirectSum.support_of
 -/
 
 #print DirectSum.support_of_subset /-
 theorem support_of_subset [∀ (i : ι) (x : β i), Decidable (x ≠ 0)] {i : ι} {b : β i} :
     (of _ i b).support ⊆ {i} :=
-  Dfinsupp.support_single_subset
+  DFinsupp.support_single_subset
 #align direct_sum.support_of_subset DirectSum.support_of_subset
 -/
 
 #print DirectSum.sum_support_of /-
 theorem sum_support_of [∀ (i : ι) (x : β i), Decidable (x ≠ 0)] (x : ⨁ i, β i) :
     ∑ i in x.support, of β i (x i) = x :=
-  Dfinsupp.sum_single
+  DFinsupp.sum_single
 #align direct_sum.sum_support_of DirectSum.sum_support_of
 -/
 
@@ -157,13 +157,13 @@ variable {β}
 
 #print DirectSum.mk_injective /-
 theorem mk_injective (s : Finset ι) : Function.Injective (mk β s) :=
-  Dfinsupp.mk_injective s
+  DFinsupp.mk_injective s
 #align direct_sum.mk_injective DirectSum.mk_injective
 -/
 
 #print DirectSum.of_injective /-
 theorem of_injective (i : ι) : Function.Injective (of β i) :=
-  Dfinsupp.single_injective
+  DFinsupp.single_injective
 #align direct_sum.of_injective DirectSum.of_injective
 -/
 
@@ -172,7 +172,7 @@ theorem of_injective (i : ι) : Function.Injective (of β i) :=
 protected theorem induction_on {C : (⨁ i, β i) → Prop} (x : ⨁ i, β i) (H_zero : C 0)
     (H_basic : ∀ (i : ι) (x : β i), C (of β i x)) (H_plus : ∀ x y, C x → C y → C (x + y)) : C x :=
   by
-  apply Dfinsupp.induction x H_zero
+  apply DFinsupp.induction x H_zero
   intro i b f h1 h2 ih
   solve_by_elim
 #align direct_sum.induction_on DirectSum.induction_on
@@ -183,7 +183,7 @@ protected theorem induction_on {C : (⨁ i, β i) → Prop} (x : ⨁ i, β i) (H
 then they are equal. -/
 theorem addHom_ext {γ : Type _} [AddMonoid γ] ⦃f g : (⨁ i, β i) →+ γ⦄
     (H : ∀ (i : ι) (y : β i), f (of _ i y) = g (of _ i y)) : f = g :=
-  Dfinsupp.addHom_ext H
+  DFinsupp.addHom_ext H
 #align direct_sum.add_hom_ext DirectSum.addHom_ext
 -/
 
@@ -209,14 +209,14 @@ variable (φ : ∀ i, β i →+ γ) (ψ : (⨁ i, β i) →+ γ)
 /-- `to_add_monoid φ` is the natural homomorphism from `⨁ i, β i` to `γ`
 induced by a family `φ` of homomorphisms `β i → γ`. -/
 def toAddMonoid : (⨁ i, β i) →+ γ :=
-  Dfinsupp.liftAddHom φ
+  DFinsupp.liftAddHom φ
 #align direct_sum.to_add_monoid DirectSum.toAddMonoid
 -/
 
 #print DirectSum.toAddMonoid_of /-
 @[simp]
 theorem toAddMonoid_of (i) (x : β i) : toAddMonoid φ (of β i x) = φ i x :=
-  Dfinsupp.liftAddHom_apply_single φ i x
+  DFinsupp.liftAddHom_apply_single φ i x
 #align direct_sum.to_add_monoid_of DirectSum.toAddMonoid_of
 -/
 
@@ -270,14 +270,14 @@ variable {β}
 
 #print DirectSum.unique /-
 instance unique [∀ i, Subsingleton (β i)] : Unique (⨁ i, β i) :=
-  Dfinsupp.unique
+  DFinsupp.unique
 #align direct_sum.unique DirectSum.unique
 -/
 
 #print DirectSum.uniqueOfIsEmpty /-
 /-- A direct sum over an empty type is trivial. -/
 instance uniqueOfIsEmpty [IsEmpty ι] : Unique (⨁ i, β i) :=
-  Dfinsupp.uniqueOfIsEmpty
+  DFinsupp.uniqueOfIsEmpty
 #align direct_sum.unique_of_is_empty DirectSum.uniqueOfIsEmpty
 -/
 
@@ -306,7 +306,7 @@ variable {κ : Type _}
 #print DirectSum.equivCongrLeft /-
 /-- Reindexing terms of a direct sum.-/
 def equivCongrLeft (h : ι ≃ κ) : (⨁ i, β i) ≃+ ⨁ k, β (h.symm k) :=
-  { Dfinsupp.equivCongrLeft h with map_add' := Dfinsupp.comapDomain'_add _ _ }
+  { DFinsupp.equivCongrLeft h with map_add' := DFinsupp.comapDomain'_add _ _ }
 #align direct_sum.equiv_congr_left DirectSum.equivCongrLeft
 -/
 
@@ -314,7 +314,7 @@ def equivCongrLeft (h : ι ≃ κ) : (⨁ i, β i) ≃+ ⨁ k, β (h.symm k) :=
 @[simp]
 theorem equivCongrLeft_apply (h : ι ≃ κ) (f : ⨁ i, β i) (k : κ) :
     equivCongrLeft h f k = f (h.symm k) :=
-  Dfinsupp.comapDomain'_apply _ _ _ _
+  DFinsupp.comapDomain'_apply _ _ _ _
 #align direct_sum.equiv_congr_left_apply DirectSum.equivCongrLeft_apply
 -/
 
@@ -328,7 +328,7 @@ variable {α : Option ι → Type w} [∀ i, AddCommMonoid (α i)]
 /-- Isomorphism obtained by separating the term of index `none` of a direct sum over `option ι`.-/
 @[simps]
 noncomputable def addEquivProdDirectSum : (⨁ i, α i) ≃+ α none × ⨁ i, α (some i) :=
-  { Dfinsupp.equivProdDfinsupp with map_add' := Dfinsupp.equivProdDfinsupp_add }
+  { DFinsupp.equivProdDFinsupp with map_add' := DFinsupp.equivProdDFinsupp_add }
 #align direct_sum.add_equiv_prod_direct_sum DirectSum.addEquivProdDirectSum
 -/
 
@@ -343,9 +343,9 @@ variable {α : ι → Type u} {δ : ∀ i, α i → Type w} [∀ i j, AddCommMon
 /-- The natural map between `⨁ (i : Σ i, α i), δ i.1 i.2` and `⨁ i (j : α i), δ i j`.-/
 noncomputable def sigmaCurry : (⨁ i : Σ i, _, δ i.1 i.2) →+ ⨁ (i) (j), δ i j
     where
-  toFun := @Dfinsupp.sigmaCurry _ _ δ _
-  map_zero' := Dfinsupp.sigmaCurry_zero
-  map_add' f g := @Dfinsupp.sigmaCurry_add _ _ δ _ f g
+  toFun := @DFinsupp.sigmaCurry _ _ δ _
+  map_zero' := DFinsupp.sigmaCurry_zero
+  map_add' f g := @DFinsupp.sigmaCurry_add _ _ δ _ f g
 #align direct_sum.sigma_curry DirectSum.sigmaCurry
 -/
 
@@ -353,7 +353,7 @@ noncomputable def sigmaCurry : (⨁ i : Σ i, _, δ i.1 i.2) →+ ⨁ (i) (j), 
 @[simp]
 theorem sigmaCurry_apply (f : ⨁ i : Σ i, _, δ i.1 i.2) (i : ι) (j : α i) :
     sigmaCurry f i j = f ⟨i, j⟩ :=
-  @Dfinsupp.sigmaCurry_apply _ _ δ _ f i j
+  @DFinsupp.sigmaCurry_apply _ _ δ _ f i j
 #align direct_sum.sigma_curry_apply DirectSum.sigmaCurry_apply
 -/
 
@@ -364,9 +364,9 @@ theorem sigmaCurry_apply (f : ⨁ i : Σ i, _, δ i.1 i.2) (i : ι) (j : α i) :
 def sigmaUncurry [∀ i, DecidableEq (α i)] [∀ i j, DecidableEq (δ i j)] :
     (⨁ (i) (j), δ i j) →+ ⨁ i : Σ i, _, δ i.1 i.2
     where
-  toFun := Dfinsupp.sigmaUncurry
-  map_zero' := Dfinsupp.sigmaUncurry_zero
-  map_add' := Dfinsupp.sigmaUncurry_add
+  toFun := DFinsupp.sigmaUncurry
+  map_zero' := DFinsupp.sigmaUncurry_zero
+  map_add' := DFinsupp.sigmaUncurry_add
 #align direct_sum.sigma_uncurry DirectSum.sigmaUncurry
 -/
 
@@ -375,7 +375,7 @@ def sigmaUncurry [∀ i, DecidableEq (α i)] [∀ i j, DecidableEq (δ i j)] :
 @[simp]
 theorem sigmaUncurry_apply [∀ i, DecidableEq (α i)] [∀ i j, DecidableEq (δ i j)]
     (f : ⨁ (i) (j), δ i j) (i : ι) (j : α i) : sigmaUncurry f ⟨i, j⟩ = f i j :=
-  Dfinsupp.sigmaUncurry_apply f i j
+  DFinsupp.sigmaUncurry_apply f i j
 #align direct_sum.sigma_uncurry_apply DirectSum.sigmaUncurry_apply
 -/
 
@@ -384,7 +384,7 @@ theorem sigmaUncurry_apply [∀ i, DecidableEq (α i)] [∀ i j, DecidableEq (δ
 /-- The natural map between `⨁ (i : Σ i, α i), δ i.1 i.2` and `⨁ i (j : α i), δ i j`.-/
 noncomputable def sigmaCurryEquiv [∀ i, DecidableEq (α i)] [∀ i j, DecidableEq (δ i j)] :
     (⨁ i : Σ i, _, δ i.1 i.2) ≃+ ⨁ (i) (j), δ i j :=
-  { sigmaCurry, Dfinsupp.sigmaCurryEquiv with }
+  { sigmaCurry, DFinsupp.sigmaCurryEquiv with }
 #align direct_sum.sigma_curry_equiv DirectSum.sigmaCurryEquiv
 -/
 
Diff
@@ -49,7 +49,6 @@ deriving AddCommMonoid, Inhabited
 instance [∀ i, AddCommMonoid (β i)] : CoeFun (DirectSum ι β) fun _ => ∀ i : ι, β i :=
   Dfinsupp.hasCoeToFun
 
--- mathport name: direct_sum
 scoped[DirectSum] notation3"⨁ "(...)", "r:(scoped f => DirectSum _ f) => r
 
 namespace DirectSum
@@ -65,31 +64,35 @@ instance : AddCommGroup (DirectSum ι β) :=
 
 variable {β}
 
+#print DirectSum.sub_apply /-
 @[simp]
 theorem sub_apply (g₁ g₂ : ⨁ i, β i) (i : ι) : (g₁ - g₂) i = g₁ i - g₂ i :=
   rfl
 #align direct_sum.sub_apply DirectSum.sub_apply
+-/
 
 end AddCommGroup
 
 variable [∀ i, AddCommMonoid (β i)]
 
+#print DirectSum.zero_apply /-
 @[simp]
 theorem zero_apply (i : ι) : (0 : ⨁ i, β i) i = 0 :=
   rfl
 #align direct_sum.zero_apply DirectSum.zero_apply
+-/
 
 variable {β}
 
+#print DirectSum.add_apply /-
 @[simp]
 theorem add_apply (g₁ g₂ : ⨁ i, β i) (i : ι) : (g₁ + g₂) i = g₁ i + g₂ i :=
   rfl
 #align direct_sum.add_apply DirectSum.add_apply
+-/
 
 variable (β)
 
-include dec_ι
-
 #print DirectSum.mk /-
 /-- `mk β s x` is the element of `⨁ i, β i` that is zero outside `s`
 and has coefficient `x i` for `i` in `s`. -/
@@ -108,46 +111,63 @@ def of (i : ι) : β i →+ ⨁ i, β i :=
 #align direct_sum.of DirectSum.of
 -/
 
+#print DirectSum.of_eq_same /-
 @[simp]
 theorem of_eq_same (i : ι) (x : β i) : (of _ i x) i = x :=
   Dfinsupp.single_eq_same
 #align direct_sum.of_eq_same DirectSum.of_eq_same
+-/
 
+#print DirectSum.of_eq_of_ne /-
 theorem of_eq_of_ne (i j : ι) (x : β i) (h : i ≠ j) : (of _ i x) j = 0 :=
   Dfinsupp.single_eq_of_ne h
 #align direct_sum.of_eq_of_ne DirectSum.of_eq_of_ne
+-/
 
+#print DirectSum.support_zero /-
 @[simp]
 theorem support_zero [∀ (i : ι) (x : β i), Decidable (x ≠ 0)] : (0 : ⨁ i, β i).support = ∅ :=
   Dfinsupp.support_zero
 #align direct_sum.support_zero DirectSum.support_zero
+-/
 
+#print DirectSum.support_of /-
 @[simp]
 theorem support_of [∀ (i : ι) (x : β i), Decidable (x ≠ 0)] (i : ι) (x : β i) (h : x ≠ 0) :
     (of _ i x).support = {i} :=
   Dfinsupp.support_single_ne_zero h
 #align direct_sum.support_of DirectSum.support_of
+-/
 
+#print DirectSum.support_of_subset /-
 theorem support_of_subset [∀ (i : ι) (x : β i), Decidable (x ≠ 0)] {i : ι} {b : β i} :
     (of _ i b).support ⊆ {i} :=
   Dfinsupp.support_single_subset
 #align direct_sum.support_of_subset DirectSum.support_of_subset
+-/
 
+#print DirectSum.sum_support_of /-
 theorem sum_support_of [∀ (i : ι) (x : β i), Decidable (x ≠ 0)] (x : ⨁ i, β i) :
     ∑ i in x.support, of β i (x i) = x :=
   Dfinsupp.sum_single
 #align direct_sum.sum_support_of DirectSum.sum_support_of
+-/
 
 variable {β}
 
+#print DirectSum.mk_injective /-
 theorem mk_injective (s : Finset ι) : Function.Injective (mk β s) :=
   Dfinsupp.mk_injective s
 #align direct_sum.mk_injective DirectSum.mk_injective
+-/
 
+#print DirectSum.of_injective /-
 theorem of_injective (i : ι) : Function.Injective (of β i) :=
   Dfinsupp.single_injective
 #align direct_sum.of_injective DirectSum.of_injective
+-/
 
+#print DirectSum.induction_on /-
 @[elab_as_elim]
 protected theorem induction_on {C : (⨁ i, β i) → Prop} (x : ⨁ i, β i) (H_zero : C 0)
     (H_basic : ∀ (i : ι) (x : β i), C (of β i x)) (H_plus : ∀ x y, C x → C y → C (x + y)) : C x :=
@@ -156,14 +176,18 @@ protected theorem induction_on {C : (⨁ i, β i) → Prop} (x : ⨁ i, β i) (H
   intro i b f h1 h2 ih
   solve_by_elim
 #align direct_sum.induction_on DirectSum.induction_on
+-/
 
+#print DirectSum.addHom_ext /-
 /-- If two additive homomorphisms from `⨁ i, β i` are equal on each `of β i y`,
 then they are equal. -/
 theorem addHom_ext {γ : Type _} [AddMonoid γ] ⦃f g : (⨁ i, β i) →+ γ⦄
     (H : ∀ (i : ι) (y : β i), f (of _ i y) = g (of _ i y)) : f = g :=
   Dfinsupp.addHom_ext H
 #align direct_sum.add_hom_ext DirectSum.addHom_ext
+-/
 
+#print DirectSum.addHom_ext' /-
 /-- If two additive homomorphisms from `⨁ i, β i` are equal on each `of β i y`,
 then they are equal.
 
@@ -173,6 +197,7 @@ theorem addHom_ext' {γ : Type _} [AddMonoid γ] ⦃f g : (⨁ i, β i) →+ γ
     (H : ∀ i : ι, f.comp (of _ i) = g.comp (of _ i)) : f = g :=
   addHom_ext fun i => AddMonoidHom.congr_fun <| H i
 #align direct_sum.add_hom_ext' DirectSum.addHom_ext'
+-/
 
 variable {γ : Type u₁} [AddCommMonoid γ]
 
@@ -188,14 +213,18 @@ def toAddMonoid : (⨁ i, β i) →+ γ :=
 #align direct_sum.to_add_monoid DirectSum.toAddMonoid
 -/
 
+#print DirectSum.toAddMonoid_of /-
 @[simp]
 theorem toAddMonoid_of (i) (x : β i) : toAddMonoid φ (of β i x) = φ i x :=
   Dfinsupp.liftAddHom_apply_single φ i x
 #align direct_sum.to_add_monoid_of DirectSum.toAddMonoid_of
+-/
 
+#print DirectSum.toAddMonoid.unique /-
 theorem toAddMonoid.unique (f : ⨁ i, β i) : ψ f = toAddMonoid (fun i => ψ.comp (of β i)) f := by
   congr; ext; simp [to_add_monoid, of]
 #align direct_sum.to_add_monoid.unique DirectSum.toAddMonoid.unique
+-/
 
 end ToAddMonoid
 
@@ -211,14 +240,18 @@ def fromAddMonoid : (⨁ i, γ →+ β i) →+ γ →+ ⨁ i, β i :=
 #align direct_sum.from_add_monoid DirectSum.fromAddMonoid
 -/
 
+#print DirectSum.fromAddMonoid_of /-
 @[simp]
 theorem fromAddMonoid_of (i : ι) (f : γ →+ β i) : fromAddMonoid (of _ i f) = (of _ i).comp f := by
   rw [from_add_monoid, to_add_monoid_of]; rfl
 #align direct_sum.from_add_monoid_of DirectSum.fromAddMonoid_of
+-/
 
+#print DirectSum.fromAddMonoid_of_apply /-
 theorem fromAddMonoid_of_apply (i : ι) (f : γ →+ β i) (x : γ) :
     fromAddMonoid (of _ i f) x = of _ i (f x) := by rw [from_add_monoid_of, AddMonoidHom.coe_comp]
 #align direct_sum.from_add_monoid_of_apply DirectSum.fromAddMonoid_of_apply
+-/
 
 end FromAddMonoid
 
@@ -235,8 +268,6 @@ def setToSet (S T : Set ι) (H : S ⊆ T) : (⨁ i : S, β i) →+ ⨁ i : T, β
 
 variable {β}
 
-omit dec_ι
-
 #print DirectSum.unique /-
 instance unique [∀ i, Subsingleton (β i)] : Unique (⨁ i, β i) :=
   Dfinsupp.unique
@@ -250,6 +281,7 @@ instance uniqueOfIsEmpty [IsEmpty ι] : Unique (⨁ i, β i) :=
 #align direct_sum.unique_of_is_empty DirectSum.uniqueOfIsEmpty
 -/
 
+#print DirectSum.id /-
 /-- The natural equivalence between `⨁ _ : ι, M` and `M` when `unique ι`. -/
 protected def id (M : Type v) (ι : Type _ := PUnit) [AddCommMonoid M] [Unique ι] :
     (⨁ _ : ι, M) ≃+ M :=
@@ -265,6 +297,7 @@ protected def id (M : Type v) (ι : Type _ := PUnit) [AddCommMonoid M] [Unique 
         rw [AddMonoidHom.map_add, AddMonoidHom.map_add, ihx, ihy]
     right_inv := fun x => toAddMonoid_of _ _ _ }
 #align direct_sum.id DirectSum.id
+-/
 
 section CongrLeft
 
@@ -277,11 +310,13 @@ def equivCongrLeft (h : ι ≃ κ) : (⨁ i, β i) ≃+ ⨁ k, β (h.symm k) :=
 #align direct_sum.equiv_congr_left DirectSum.equivCongrLeft
 -/
 
+#print DirectSum.equivCongrLeft_apply /-
 @[simp]
 theorem equivCongrLeft_apply (h : ι ≃ κ) (f : ⨁ i, β i) (k : κ) :
     equivCongrLeft h f k = f (h.symm k) :=
   Dfinsupp.comapDomain'_apply _ _ _ _
 #align direct_sum.equiv_congr_left_apply DirectSum.equivCongrLeft_apply
+-/
 
 end CongrLeft
 
@@ -289,13 +324,13 @@ section Option
 
 variable {α : Option ι → Type w} [∀ i, AddCommMonoid (α i)]
 
-include dec_ι
-
+#print DirectSum.addEquivProdDirectSum /-
 /-- Isomorphism obtained by separating the term of index `none` of a direct sum over `option ι`.-/
 @[simps]
 noncomputable def addEquivProdDirectSum : (⨁ i, α i) ≃+ α none × ⨁ i, α (some i) :=
   { Dfinsupp.equivProdDfinsupp with map_add' := Dfinsupp.equivProdDfinsupp_add }
 #align direct_sum.add_equiv_prod_direct_sum DirectSum.addEquivProdDirectSum
+-/
 
 end Option
 
@@ -314,11 +349,13 @@ noncomputable def sigmaCurry : (⨁ i : Σ i, _, δ i.1 i.2) →+ ⨁ (i) (j), 
 #align direct_sum.sigma_curry DirectSum.sigmaCurry
 -/
 
+#print DirectSum.sigmaCurry_apply /-
 @[simp]
 theorem sigmaCurry_apply (f : ⨁ i : Σ i, _, δ i.1 i.2) (i : ι) (j : α i) :
     sigmaCurry f i j = f ⟨i, j⟩ :=
   @Dfinsupp.sigmaCurry_apply _ _ δ _ f i j
 #align direct_sum.sigma_curry_apply DirectSum.sigmaCurry_apply
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 #print DirectSum.sigmaUncurry /-
@@ -334,18 +371,22 @@ def sigmaUncurry [∀ i, DecidableEq (α i)] [∀ i j, DecidableEq (δ i j)] :
 -/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
+#print DirectSum.sigmaUncurry_apply /-
 @[simp]
 theorem sigmaUncurry_apply [∀ i, DecidableEq (α i)] [∀ i j, DecidableEq (δ i j)]
     (f : ⨁ (i) (j), δ i j) (i : ι) (j : α i) : sigmaUncurry f ⟨i, j⟩ = f i j :=
   Dfinsupp.sigmaUncurry_apply f i j
 #align direct_sum.sigma_uncurry_apply DirectSum.sigmaUncurry_apply
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
+#print DirectSum.sigmaCurryEquiv /-
 /-- The natural map between `⨁ (i : Σ i, α i), δ i.1 i.2` and `⨁ i (j : α i), δ i j`.-/
 noncomputable def sigmaCurryEquiv [∀ i, DecidableEq (α i)] [∀ i j, DecidableEq (δ i j)] :
     (⨁ i : Σ i, _, δ i.1 i.2) ≃+ ⨁ (i) (j), δ i j :=
   { sigmaCurry, Dfinsupp.sigmaCurryEquiv with }
 #align direct_sum.sigma_curry_equiv DirectSum.sigmaCurryEquiv
+-/
 
 end Sigma
 
@@ -360,13 +401,16 @@ protected def coeAddMonoidHom {M S : Type _} [DecidableEq ι] [AddCommMonoid M]
 #align direct_sum.coe_add_monoid_hom DirectSum.coeAddMonoidHom
 -/
 
+#print DirectSum.coeAddMonoidHom_of /-
 @[simp]
 theorem coeAddMonoidHom_of {M S : Type _} [DecidableEq ι] [AddCommMonoid M] [SetLike S M]
     [AddSubmonoidClass S M] (A : ι → S) (i : ι) (x : A i) :
     DirectSum.coeAddMonoidHom A (of (fun i => A i) i x) = x :=
   toAddMonoid_of _ _ _
 #align direct_sum.coe_add_monoid_hom_of DirectSum.coeAddMonoidHom_of
+-/
 
+#print DirectSum.coe_of_apply /-
 theorem coe_of_apply {M S : Type _} [DecidableEq ι] [AddCommMonoid M] [SetLike S M]
     [AddSubmonoidClass S M] {A : ι → S} (i j : ι) (x : A i) :
     (of _ i x j : M) = if i = j then x else 0 :=
@@ -375,6 +419,7 @@ theorem coe_of_apply {M S : Type _} [DecidableEq ι] [AddCommMonoid M] [SetLike
   · rw [DirectSum.of_eq_same, if_pos rfl]
   · rw [DirectSum.of_eq_of_ne _ _ _ _ h, if_neg h, ZeroMemClass.coe_zero]
 #align direct_sum.coe_of_apply DirectSum.coe_of_apply
+-/
 
 #print DirectSum.IsInternal /-
 /-- The `direct_sum` formed by a collection of additive submonoids (or subgroups, or submodules) of
@@ -389,12 +434,14 @@ def IsInternal {M S : Type _} [DecidableEq ι] [AddCommMonoid M] [SetLike S M]
 #align direct_sum.is_internal DirectSum.IsInternal
 -/
 
+#print DirectSum.IsInternal.addSubmonoid_iSup_eq_top /-
 theorem IsInternal.addSubmonoid_iSup_eq_top {M : Type _} [DecidableEq ι] [AddCommMonoid M]
     (A : ι → AddSubmonoid M) (h : IsInternal A) : iSup A = ⊤ :=
   by
   rw [AddSubmonoid.iSup_eq_mrange_dfinsupp_sumAddHom, AddMonoidHom.mrange_top_iff_surjective]
   exact Function.Bijective.surjective h
 #align direct_sum.is_internal.add_submonoid_supr_eq_top DirectSum.IsInternal.addSubmonoid_iSup_eq_top
+-/
 
 end DirectSum
 
Diff
@@ -134,7 +134,7 @@ theorem support_of_subset [∀ (i : ι) (x : β i), Decidable (x ≠ 0)] {i : ι
 #align direct_sum.support_of_subset DirectSum.support_of_subset
 
 theorem sum_support_of [∀ (i : ι) (x : β i), Decidable (x ≠ 0)] (x : ⨁ i, β i) :
-    (∑ i in x.support, of β i (x i)) = x :=
+    ∑ i in x.support, of β i (x i) = x :=
   Dfinsupp.sum_single
 #align direct_sum.sum_support_of DirectSum.sum_support_of
 
Diff
@@ -90,6 +90,7 @@ variable (β)
 
 include dec_ι
 
+#print DirectSum.mk /-
 /-- `mk β s x` is the element of `⨁ i, β i` that is zero outside `s`
 and has coefficient `x i` for `i` in `s`. -/
 def mk (s : Finset ι) : (∀ i : (↑s : Set ι), β i.1) →+ ⨁ i, β i
@@ -98,11 +99,14 @@ def mk (s : Finset ι) : (∀ i : (↑s : Set ι), β i.1) →+ ⨁ i, β i
   map_add' _ _ := Dfinsupp.mk_add
   map_zero' := Dfinsupp.mk_zero
 #align direct_sum.mk DirectSum.mk
+-/
 
+#print DirectSum.of /-
 /-- `of i` is the natural inclusion map from `β i` to `⨁ i, β i`. -/
 def of (i : ι) : β i →+ ⨁ i, β i :=
   Dfinsupp.singleAddHom β i
 #align direct_sum.of DirectSum.of
+-/
 
 @[simp]
 theorem of_eq_same (i : ι) (x : β i) : (of _ i x) i = x :=
@@ -176,11 +180,13 @@ section ToAddMonoid
 
 variable (φ : ∀ i, β i →+ γ) (ψ : (⨁ i, β i) →+ γ)
 
+#print DirectSum.toAddMonoid /-
 /-- `to_add_monoid φ` is the natural homomorphism from `⨁ i, β i` to `γ`
 induced by a family `φ` of homomorphisms `β i → γ`. -/
 def toAddMonoid : (⨁ i, β i) →+ γ :=
   Dfinsupp.liftAddHom φ
 #align direct_sum.to_add_monoid DirectSum.toAddMonoid
+-/
 
 @[simp]
 theorem toAddMonoid_of (i) (x : β i) : toAddMonoid φ (of β i x) = φ i x :=
@@ -195,6 +201,7 @@ end ToAddMonoid
 
 section FromAddMonoid
 
+#print DirectSum.fromAddMonoid /-
 /-- `from_add_monoid φ` is the natural homomorphism from `γ` to `⨁ i, β i`
 induced by a family `φ` of homomorphisms `γ → β i`.
 
@@ -202,6 +209,7 @@ Note that this is not an isomorphism. Not every homomorphism `γ →+ ⨁ i, β
 def fromAddMonoid : (⨁ i, γ →+ β i) →+ γ →+ ⨁ i, β i :=
   toAddMonoid fun i => AddMonoidHom.compHom (of β i)
 #align direct_sum.from_add_monoid DirectSum.fromAddMonoid
+-/
 
 @[simp]
 theorem fromAddMonoid_of (i : ι) (f : γ →+ β i) : fromAddMonoid (of _ i f) = (of _ i).comp f := by
@@ -216,12 +224,14 @@ end FromAddMonoid
 
 variable (β)
 
+#print DirectSum.setToSet /-
 -- TODO: generalize this to remove the assumption `S ⊆ T`.
 /-- `set_to_set β S T h` is the natural homomorphism `⨁ (i : S), β i → ⨁ (i : T), β i`,
 where `h : S ⊆ T`. -/
 def setToSet (S T : Set ι) (H : S ⊆ T) : (⨁ i : S, β i) →+ ⨁ i : T, β i :=
   toAddMonoid fun i => of (fun i : Subtype T => β i) ⟨↑i, H i.Prop⟩
 #align direct_sum.set_to_set DirectSum.setToSet
+-/
 
 variable {β}
 
@@ -294,6 +304,7 @@ section Sigma
 variable {α : ι → Type u} {δ : ∀ i, α i → Type w} [∀ i j, AddCommMonoid (δ i j)]
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
+#print DirectSum.sigmaCurry /-
 /-- The natural map between `⨁ (i : Σ i, α i), δ i.1 i.2` and `⨁ i (j : α i), δ i j`.-/
 noncomputable def sigmaCurry : (⨁ i : Σ i, _, δ i.1 i.2) →+ ⨁ (i) (j), δ i j
     where
@@ -301,6 +312,7 @@ noncomputable def sigmaCurry : (⨁ i : Σ i, _, δ i.1 i.2) →+ ⨁ (i) (j), 
   map_zero' := Dfinsupp.sigmaCurry_zero
   map_add' f g := @Dfinsupp.sigmaCurry_add _ _ δ _ f g
 #align direct_sum.sigma_curry DirectSum.sigmaCurry
+-/
 
 @[simp]
 theorem sigmaCurry_apply (f : ⨁ i : Σ i, _, δ i.1 i.2) (i : ι) (j : α i) :
@@ -309,6 +321,7 @@ theorem sigmaCurry_apply (f : ⨁ i : Σ i, _, δ i.1 i.2) (i : ι) (j : α i) :
 #align direct_sum.sigma_curry_apply DirectSum.sigmaCurry_apply
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
+#print DirectSum.sigmaUncurry /-
 /-- The natural map between `⨁ i (j : α i), δ i j` and `Π₀ (i : Σ i, α i), δ i.1 i.2`, inverse of
 `curry`.-/
 def sigmaUncurry [∀ i, DecidableEq (α i)] [∀ i j, DecidableEq (δ i j)] :
@@ -318,6 +331,7 @@ def sigmaUncurry [∀ i, DecidableEq (α i)] [∀ i j, DecidableEq (δ i j)] :
   map_zero' := Dfinsupp.sigmaUncurry_zero
   map_add' := Dfinsupp.sigmaUncurry_add
 #align direct_sum.sigma_uncurry DirectSum.sigmaUncurry
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 @[simp]
@@ -335,6 +349,7 @@ noncomputable def sigmaCurryEquiv [∀ i, DecidableEq (α i)] [∀ i j, Decidabl
 
 end Sigma
 
+#print DirectSum.coeAddMonoidHom /-
 /-- The canonical embedding from `⨁ i, A i` to `M` where `A` is a collection of `add_submonoid M`
 indexed by `ι`.
 
@@ -343,6 +358,7 @@ protected def coeAddMonoidHom {M S : Type _} [DecidableEq ι] [AddCommMonoid M]
     [AddSubmonoidClass S M] (A : ι → S) : (⨁ i, A i) →+ M :=
   toAddMonoid fun i => AddSubmonoidClass.Subtype (A i)
 #align direct_sum.coe_add_monoid_hom DirectSum.coeAddMonoidHom
+-/
 
 @[simp]
 theorem coeAddMonoidHom_of {M S : Type _} [DecidableEq ι] [AddCommMonoid M] [SetLike S M]
Diff
@@ -41,7 +41,8 @@ variable (ι : Type v) [dec_ι : DecidableEq ι] (β : ι → Type w)
 
 Note: `open_locale direct_sum` will enable the notation `⨁ i, β i` for `direct_sum β`. -/
 def DirectSum [∀ i, AddCommMonoid (β i)] : Type _ :=
-  Π₀ i, β i deriving AddCommMonoid, Inhabited
+  Π₀ i, β i
+deriving AddCommMonoid, Inhabited
 #align direct_sum DirectSum
 -/
 
@@ -187,7 +188,7 @@ theorem toAddMonoid_of (i) (x : β i) : toAddMonoid φ (of β i x) = φ i x :=
 #align direct_sum.to_add_monoid_of DirectSum.toAddMonoid_of
 
 theorem toAddMonoid.unique (f : ⨁ i, β i) : ψ f = toAddMonoid (fun i => ψ.comp (of β i)) f := by
-  congr ; ext; simp [to_add_monoid, of]
+  congr; ext; simp [to_add_monoid, of]
 #align direct_sum.to_add_monoid.unique DirectSum.toAddMonoid.unique
 
 end ToAddMonoid
@@ -294,7 +295,7 @@ variable {α : ι → Type u} {δ : ∀ i, α i → Type w} [∀ i j, AddCommMon
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 /-- The natural map between `⨁ (i : Σ i, α i), δ i.1 i.2` and `⨁ i (j : α i), δ i j`.-/
-noncomputable def sigmaCurry : (⨁ i : Σi, _, δ i.1 i.2) →+ ⨁ (i) (j), δ i j
+noncomputable def sigmaCurry : (⨁ i : Σ i, _, δ i.1 i.2) →+ ⨁ (i) (j), δ i j
     where
   toFun := @Dfinsupp.sigmaCurry _ _ δ _
   map_zero' := Dfinsupp.sigmaCurry_zero
@@ -302,7 +303,7 @@ noncomputable def sigmaCurry : (⨁ i : Σi, _, δ i.1 i.2) →+ ⨁ (i) (j), δ
 #align direct_sum.sigma_curry DirectSum.sigmaCurry
 
 @[simp]
-theorem sigmaCurry_apply (f : ⨁ i : Σi, _, δ i.1 i.2) (i : ι) (j : α i) :
+theorem sigmaCurry_apply (f : ⨁ i : Σ i, _, δ i.1 i.2) (i : ι) (j : α i) :
     sigmaCurry f i j = f ⟨i, j⟩ :=
   @Dfinsupp.sigmaCurry_apply _ _ δ _ f i j
 #align direct_sum.sigma_curry_apply DirectSum.sigmaCurry_apply
@@ -311,7 +312,7 @@ theorem sigmaCurry_apply (f : ⨁ i : Σi, _, δ i.1 i.2) (i : ι) (j : α i) :
 /-- The natural map between `⨁ i (j : α i), δ i j` and `Π₀ (i : Σ i, α i), δ i.1 i.2`, inverse of
 `curry`.-/
 def sigmaUncurry [∀ i, DecidableEq (α i)] [∀ i j, DecidableEq (δ i j)] :
-    (⨁ (i) (j), δ i j) →+ ⨁ i : Σi, _, δ i.1 i.2
+    (⨁ (i) (j), δ i j) →+ ⨁ i : Σ i, _, δ i.1 i.2
     where
   toFun := Dfinsupp.sigmaUncurry
   map_zero' := Dfinsupp.sigmaUncurry_zero
@@ -328,7 +329,7 @@ theorem sigmaUncurry_apply [∀ i, DecidableEq (α i)] [∀ i j, DecidableEq (δ
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 /-- The natural map between `⨁ (i : Σ i, α i), δ i.1 i.2` and `⨁ i (j : α i), δ i j`.-/
 noncomputable def sigmaCurryEquiv [∀ i, DecidableEq (α i)] [∀ i j, DecidableEq (δ i j)] :
-    (⨁ i : Σi, _, δ i.1 i.2) ≃+ ⨁ (i) (j), δ i j :=
+    (⨁ i : Σ i, _, δ i.1 i.2) ≃+ ⨁ (i) (j), δ i j :=
   { sigmaCurry, Dfinsupp.sigmaCurryEquiv with }
 #align direct_sum.sigma_curry_equiv DirectSum.sigmaCurryEquiv
 
Diff
@@ -30,7 +30,7 @@ This notation is in the `direct_sum` locale, accessible after `open_locale direc
 -/
 
 
-open BigOperators
+open scoped BigOperators
 
 universe u v w u₁
 
Diff
@@ -64,12 +64,6 @@ instance : AddCommGroup (DirectSum ι β) :=
 
 variable {β}
 
-/- warning: direct_sum.sub_apply -> DirectSum.sub_apply is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommGroup.{u2} (β i)] (g₁ : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (g₂ : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (i : ι), Eq.{succ u2} (β i) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (fun (_x : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => forall (i : ι), β i) (DirectSum.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (DirectSum.addCommGroup.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) g₁ g₂) i) (HSub.hSub.{u2, u2, u2} (β i) (β i) (β i) (instHSub.{u2} (β i) (SubNegMonoid.toHasSub.{u2} (β i) (AddGroup.toSubNegMonoid.{u2} (β i) (AddCommGroup.toAddGroup.{u2} (β i) (_inst_1 i))))) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (fun (_x : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => forall (i : ι), β i) (DirectSum.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) g₁ i) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (fun (_x : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => forall (i : ι), β i) (DirectSum.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) g₂ i))
-but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommGroup.{u2} (β i)] (g₁ : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (g₂ : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (i : ι), Eq.{succ u2} ((fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) i) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) _x) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i))) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (SubNegMonoid.toSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (DirectSum.instAddCommGroupDirectSumToAddCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) g₁ g₂) i) (HSub.hSub.{u2, u2, u2} ((fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) i) ((fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) i) ((fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) i) (instHSub.{u2} ((fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) i) (SubNegMonoid.toSub.{u2} ((fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) i) (AddCommGroup.toAddGroup.{u2} ((fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) i) (_inst_1 i))))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) _x) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i))) i)) g₁ i) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) _x) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i))) i)) g₂ i))
-Case conversion may be inaccurate. Consider using '#align direct_sum.sub_apply DirectSum.sub_applyₓ'. -/
 @[simp]
 theorem sub_apply (g₁ g₂ : ⨁ i, β i) (i : ι) : (g₁ - g₂) i = g₁ i - g₂ i :=
   rfl
@@ -79,12 +73,6 @@ end AddCommGroup
 
 variable [∀ i, AddCommMonoid (β i)]
 
-/- warning: direct_sum.zero_apply -> DirectSum.zero_apply is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} (β : ι -> Type.{u2}) [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] (i : ι), Eq.{succ u2} (β i) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (fun (_x : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => forall (i : ι), β i) (DirectSum.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (OfNat.ofNat.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) 0 (OfNat.mk.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) 0 (Zero.zero.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toHasZero.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))))) i) (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))))))
-but is expected to have type
-  forall {ι : Type.{u1}} (β : ι -> Type.{u2}) [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] (i : ι), Eq.{succ u2} ((fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) i) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => _inst_1 i) i))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) _x) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => _inst_1 i) i))) i)) (OfNat.ofNat.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) 0 (Zero.toOfNat0.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toZero.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) i) (OfNat.ofNat.{u2} ((fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) i) 0 (Zero.toOfNat0.{u2} ((fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) i) (AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) i) (_inst_1 i)))))
-Case conversion may be inaccurate. Consider using '#align direct_sum.zero_apply DirectSum.zero_applyₓ'. -/
 @[simp]
 theorem zero_apply (i : ι) : (0 : ⨁ i, β i) i = 0 :=
   rfl
@@ -92,12 +80,6 @@ theorem zero_apply (i : ι) : (0 : ⨁ i, β i) i = 0 :=
 
 variable {β}
 
-/- warning: direct_sum.add_apply -> DirectSum.add_apply is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] (g₁ : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (g₂ : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (i : ι), Eq.{succ u2} (β i) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (fun (_x : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => forall (i : ι), β i) (DirectSum.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instHAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toHasAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) g₁ g₂) i) (HAdd.hAdd.{u2, u2, u2} (β i) (β i) (β i) (instHAdd.{u2} (β i) (AddZeroClass.toHasAdd.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (fun (_x : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => forall (i : ι), β i) (DirectSum.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) g₁ i) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (fun (_x : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => forall (i : ι), β i) (DirectSum.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) g₂ i))
-but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] (g₁ : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (g₂ : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (i : ι), Eq.{succ u2} ((fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) i) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => _inst_1 i) i))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) _x) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => _inst_1 i) i))) i)) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instHAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) g₁ g₂) i) (HAdd.hAdd.{u2, u2, u2} ((fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) i) ((fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) i) ((fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) i) (instHAdd.{u2} ((fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) i) (AddZeroClass.toAdd.{u2} ((fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) i) (_inst_1 i))))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => _inst_1 i) i))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) _x) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => _inst_1 i) i))) i)) g₁ i) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => _inst_1 i) i))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) _x) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => _inst_1 i) i))) i)) g₂ i))
-Case conversion may be inaccurate. Consider using '#align direct_sum.add_apply DirectSum.add_applyₓ'. -/
 @[simp]
 theorem add_apply (g₁ g₂ : ⨁ i, β i) (i : ι) : (g₁ + g₂) i = g₁ i + g₂ i :=
   rfl
@@ -107,12 +89,6 @@ variable (β)
 
 include dec_ι
 
-/- warning: direct_sum.mk -> DirectSum.mk is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] (β : ι -> Type.{u2}) [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] (s : Finset.{u1} ι), AddMonoidHom.{max u1 u2, max u1 u2} (forall (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Pi.addZeroClass.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) (fun (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) => β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) i)) (fun (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) => AddMonoid.toAddZeroClass.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) i)) (AddCommMonoid.toAddMonoid.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) i)) (_inst_1 (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))
-but is expected to have type
-  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] (β : ι -> Type.{u2}) [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] (s : Finset.{u1} ι), AddMonoidHom.{max u1 u2, max u2 u1} (forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Pi.addZeroClass.{u1, u2} (Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) (fun (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) => β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (fun (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) => AddMonoid.toAddZeroClass.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (AddCommMonoid.toAddMonoid.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (_inst_1 (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))
-Case conversion may be inaccurate. Consider using '#align direct_sum.mk DirectSum.mkₓ'. -/
 /-- `mk β s x` is the element of `⨁ i, β i` that is zero outside `s`
 and has coefficient `x i` for `i` in `s`. -/
 def mk (s : Finset ι) : (∀ i : (↑s : Set ι), β i.1) →+ ⨁ i, β i
@@ -122,78 +98,36 @@ def mk (s : Finset ι) : (∀ i : (↑s : Set ι), β i.1) →+ ⨁ i, β i
   map_zero' := Dfinsupp.mk_zero
 #align direct_sum.mk DirectSum.mk
 
-/- warning: direct_sum.of -> DirectSum.of is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] (β : ι -> Type.{u2}) [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] (i : ι), AddMonoidHom.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))
-but is expected to have type
-  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] (β : ι -> Type.{u2}) [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] (i : ι), AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))
-Case conversion may be inaccurate. Consider using '#align direct_sum.of DirectSum.ofₓ'. -/
 /-- `of i` is the natural inclusion map from `β i` to `⨁ i, β i`. -/
 def of (i : ι) : β i →+ ⨁ i, β i :=
   Dfinsupp.singleAddHom β i
 #align direct_sum.of DirectSum.of
 
-/- warning: direct_sum.of_eq_same -> DirectSum.of_eq_same is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] (β : ι -> Type.{u2}) [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] (i : ι) (x : β i), Eq.{succ u2} (β i) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (fun (_x : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => forall (i : ι), β i) (DirectSum.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) => (β i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) i) x) i) x
-but is expected to have type
-  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] (β : ι -> Type.{u2}) [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] (i : ι) (x : β i), Eq.{succ u2} ((fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) i) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => _inst_1 i) i))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) _x) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => _inst_1 i) i))) i)) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (fun (_x : β i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β i) => DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _x) (AddHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toAdd.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.addMonoidHomClass.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i) x) i) x
-Case conversion may be inaccurate. Consider using '#align direct_sum.of_eq_same DirectSum.of_eq_sameₓ'. -/
 @[simp]
 theorem of_eq_same (i : ι) (x : β i) : (of _ i x) i = x :=
   Dfinsupp.single_eq_same
 #align direct_sum.of_eq_same DirectSum.of_eq_same
 
-/- warning: direct_sum.of_eq_of_ne -> DirectSum.of_eq_of_ne is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] (β : ι -> Type.{u2}) [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] (i : ι) (j : ι) (x : β i), (Ne.{succ u1} ι i j) -> (Eq.{succ u2} (β j) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (fun (_x : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => forall (i : ι), β i) (DirectSum.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) => (β i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) i) x) j) (OfNat.ofNat.{u2} (β j) 0 (OfNat.mk.{u2} (β j) 0 (Zero.zero.{u2} (β j) (AddZeroClass.toHasZero.{u2} (β j) (AddMonoid.toAddZeroClass.{u2} (β j) (AddCommMonoid.toAddMonoid.{u2} (β j) (_inst_1 j))))))))
-but is expected to have type
-  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] (β : ι -> Type.{u2}) [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] (i : ι) (j : ι) (x : β i), (Ne.{succ u1} ι i j) -> (Eq.{succ u2} ((fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) j) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => _inst_1 i) i))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) _x) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => _inst_1 i) i))) i)) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (fun (_x : β i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β i) => DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _x) (AddHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toAdd.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.addMonoidHomClass.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i) x) j) (OfNat.ofNat.{u2} ((fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) j) 0 (Zero.toOfNat0.{u2} ((fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) j) (AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) j) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) j) (_inst_1 j))))))
-Case conversion may be inaccurate. Consider using '#align direct_sum.of_eq_of_ne DirectSum.of_eq_of_neₓ'. -/
 theorem of_eq_of_ne (i j : ι) (x : β i) (h : i ≠ j) : (of _ i x) j = 0 :=
   Dfinsupp.single_eq_of_ne h
 #align direct_sum.of_eq_of_ne DirectSum.of_eq_of_ne
 
-/- warning: direct_sum.support_zero -> DirectSum.support_zero is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] (β : ι -> Type.{u2}) [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))))))], Eq.{succ u1} (Finset.{u1} ι) (Dfinsupp.support.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_1 i) i)))) (fun (i : ι) (x : β i) => _inst_2 i x) (OfNat.ofNat.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) 0 (OfNat.mk.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) 0 (Zero.zero.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toHasZero.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))))) (EmptyCollection.emptyCollection.{u1} (Finset.{u1} ι) (Finset.hasEmptyc.{u1} ι))
-but is expected to have type
-  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] (β : ι -> Type.{u2}) [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (Zero.toOfNat0.{u2} (β i) (AddMonoid.toZero.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))))], Eq.{succ u1} (Finset.{u1} ι) (Dfinsupp.support.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => _inst_1 i) i))) (fun (i : ι) (x : β i) => _inst_2 i x) (OfNat.ofNat.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) 0 (Zero.toOfNat0.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toZero.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))) (EmptyCollection.emptyCollection.{u1} (Finset.{u1} ι) (Finset.instEmptyCollectionFinset.{u1} ι))
-Case conversion may be inaccurate. Consider using '#align direct_sum.support_zero DirectSum.support_zeroₓ'. -/
 @[simp]
 theorem support_zero [∀ (i : ι) (x : β i), Decidable (x ≠ 0)] : (0 : ⨁ i, β i).support = ∅ :=
   Dfinsupp.support_zero
 #align direct_sum.support_zero DirectSum.support_zero
 
-/- warning: direct_sum.support_of -> DirectSum.support_of is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] (β : ι -> Type.{u2}) [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))))))] (i : ι) (x : β i), (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))))))) -> (Eq.{succ u1} (Finset.{u1} ι) (Dfinsupp.support.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_1 i) i)))) (fun (i : ι) (x : β i) => _inst_2 i x) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) => (β i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) i) x)) (Singleton.singleton.{u1, u1} ι (Finset.{u1} ι) (Finset.hasSingleton.{u1} ι) i))
-but is expected to have type
-  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] (β : ι -> Type.{u2}) [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (Zero.toOfNat0.{u2} (β i) (AddMonoid.toZero.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))))] (i : ι) (x : β i), (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (Zero.toOfNat0.{u2} (β i) (AddMonoid.toZero.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))))) -> (Eq.{succ u1} (Finset.{u1} ι) (Dfinsupp.support.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => _inst_1 i) i))) (fun (i : ι) (x : β i) => _inst_2 i x) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (fun (_x : β i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β i) => DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _x) (AddHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toAdd.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.addMonoidHomClass.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i) x)) (Singleton.singleton.{u1, u1} ι (Finset.{u1} ι) (Finset.instSingletonFinset.{u1} ι) i))
-Case conversion may be inaccurate. Consider using '#align direct_sum.support_of DirectSum.support_ofₓ'. -/
 @[simp]
 theorem support_of [∀ (i : ι) (x : β i), Decidable (x ≠ 0)] (i : ι) (x : β i) (h : x ≠ 0) :
     (of _ i x).support = {i} :=
   Dfinsupp.support_single_ne_zero h
 #align direct_sum.support_of DirectSum.support_of
 
-/- warning: direct_sum.support_of_subset -> DirectSum.support_of_subset is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] (β : ι -> Type.{u2}) [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))))))] {i : ι} {b : β i}, HasSubset.Subset.{u1} (Finset.{u1} ι) (Finset.hasSubset.{u1} ι) (Dfinsupp.support.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_1 i) i)))) (fun (i : ι) (x : β i) => _inst_2 i x) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) => (β i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun {i : ι} => β i) (fun (i : ι) => _inst_1 i) i) b)) (Singleton.singleton.{u1, u1} ι (Finset.{u1} ι) (Finset.hasSingleton.{u1} ι) i)
-but is expected to have type
-  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] (β : ι -> Type.{u2}) [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (Zero.toOfNat0.{u2} (β i) (AddMonoid.toZero.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))))] {i : ι} {b : β i}, HasSubset.Subset.{u1} (Finset.{u1} ι) (Finset.instHasSubsetFinset.{u1} ι) (Dfinsupp.support.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => _inst_1 i) i))) (fun (i : ι) (x : β i) => _inst_2 i x) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (fun (_x : β i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β i) => DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _x) (AddHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toAdd.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.addMonoidHomClass.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i) b)) (Singleton.singleton.{u1, u1} ι (Finset.{u1} ι) (Finset.instSingletonFinset.{u1} ι) i)
-Case conversion may be inaccurate. Consider using '#align direct_sum.support_of_subset DirectSum.support_of_subsetₓ'. -/
 theorem support_of_subset [∀ (i : ι) (x : β i), Decidable (x ≠ 0)] {i : ι} {b : β i} :
     (of _ i b).support ⊆ {i} :=
   Dfinsupp.support_single_subset
 #align direct_sum.support_of_subset DirectSum.support_of_subset
 
-/- warning: direct_sum.sum_support_of -> DirectSum.sum_support_of is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] (β : ι -> Type.{u2}) [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))))))] (x : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)), Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (Finset.sum.{max u1 u2, u1} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) ι (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (Dfinsupp.support.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_1 i) i)))) (fun (i : ι) (x : β i) => _inst_2 i x) x) (fun (i : ι) => coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) ((fun (i : ι) => _inst_1 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) ((fun (i : ι) => _inst_1 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i))))) => (β i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) ((fun (i : ι) => _inst_1 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (fun (_x : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => forall (i : ι), β i) (DirectSum.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) x i))) x
-but is expected to have type
-  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] (β : ι -> Type.{u2}) [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (Zero.toOfNat0.{u2} (β i) (AddMonoid.toZero.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))))] (x : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)), Eq.{max (succ u1) (succ u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Finset.sum.{max u1 u2, u1} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) ι (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Dfinsupp.support.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => _inst_1 i) i))) (fun (i : ι) (x : β i) => _inst_2 i x) x) (fun (i : ι) => FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (fun (_x : β i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β i) => DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _x) (AddHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toAdd.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.addMonoidHomClass.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => _inst_1 i) i))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) _x) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => _inst_1 i) i))) i)) x i))) x
-Case conversion may be inaccurate. Consider using '#align direct_sum.sum_support_of DirectSum.sum_support_ofₓ'. -/
 theorem sum_support_of [∀ (i : ι) (x : β i), Decidable (x ≠ 0)] (x : ⨁ i, β i) :
     (∑ i in x.support, of β i (x i)) = x :=
   Dfinsupp.sum_single
@@ -201,29 +135,14 @@ theorem sum_support_of [∀ (i : ι) (x : β i), Decidable (x ≠ 0)] (x : ⨁ i
 
 variable {β}
 
-/- warning: direct_sum.mk_injective -> DirectSum.mk_injective is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align direct_sum.mk_injective DirectSum.mk_injectiveₓ'. -/
 theorem mk_injective (s : Finset ι) : Function.Injective (mk β s) :=
   Dfinsupp.mk_injective s
 #align direct_sum.mk_injective DirectSum.mk_injective
 
-/- warning: direct_sum.of_injective -> DirectSum.of_injective is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] (i : ι), Function.Injective.{succ u2, succ (max u1 u2)} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) ((fun (i : ι) => _inst_1 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) ((fun (i : ι) => _inst_1 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i))))) => (β i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) ((fun (i : ι) => _inst_1 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i))
-but is expected to have type
-  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] (i : ι), Function.Injective.{succ u2, max (succ u1) (succ u2)} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (fun (_x : β i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β i) => DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _x) (AddHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toAdd.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.addMonoidHomClass.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i))
-Case conversion may be inaccurate. Consider using '#align direct_sum.of_injective DirectSum.of_injectiveₓ'. -/
 theorem of_injective (i : ι) : Function.Injective (of β i) :=
   Dfinsupp.single_injective
 #align direct_sum.of_injective DirectSum.of_injective
 
-/- warning: direct_sum.induction_on -> DirectSum.induction_on is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] {C : (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) -> Prop} (x : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)), (C (OfNat.ofNat.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) 0 (OfNat.mk.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) 0 (Zero.zero.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toHasZero.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))))) -> (forall (i : ι) (x : β i), C (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) ((fun (i : ι) => _inst_1 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) ((fun (i : ι) => _inst_1 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i))))) => (β i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) ((fun (i : ι) => _inst_1 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i) x)) -> (forall (x : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (y : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)), (C x) -> (C y) -> (C (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instHAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toHasAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) x y))) -> (C x)
-but is expected to have type
-  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] {C : (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) -> Prop} (x : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)), (C (OfNat.ofNat.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) 0 (Zero.toOfNat0.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toZero.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))) -> (forall (i : ι) (x : β i), C (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (fun (_x : β i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β i) => DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _x) (AddHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toAdd.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.addMonoidHomClass.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i) x)) -> (forall (x : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (y : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)), (C x) -> (C y) -> (C (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instHAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) x y))) -> (C x)
-Case conversion may be inaccurate. Consider using '#align direct_sum.induction_on DirectSum.induction_onₓ'. -/
 @[elab_as_elim]
 protected theorem induction_on {C : (⨁ i, β i) → Prop} (x : ⨁ i, β i) (H_zero : C 0)
     (H_basic : ∀ (i : ι) (x : β i), C (of β i x)) (H_plus : ∀ x y, C x → C y → C (x + y)) : C x :=
@@ -233,9 +152,6 @@ protected theorem induction_on {C : (⨁ i, β i) → Prop} (x : ⨁ i, β i) (H
   solve_by_elim
 #align direct_sum.induction_on DirectSum.induction_on
 
-/- warning: direct_sum.add_hom_ext -> DirectSum.addHom_ext is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align direct_sum.add_hom_ext DirectSum.addHom_extₓ'. -/
 /-- If two additive homomorphisms from `⨁ i, β i` are equal on each `of β i y`,
 then they are equal. -/
 theorem addHom_ext {γ : Type _} [AddMonoid γ] ⦃f g : (⨁ i, β i) →+ γ⦄
@@ -243,12 +159,6 @@ theorem addHom_ext {γ : Type _} [AddMonoid γ] ⦃f g : (⨁ i, β i) →+ γ
   Dfinsupp.addHom_ext H
 #align direct_sum.add_hom_ext DirectSum.addHom_ext
 
-/- warning: direct_sum.add_hom_ext' -> DirectSum.addHom_ext' is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] {γ : Type.{u3}} [_inst_2 : AddMonoid.{u3} γ] {{f : AddMonoidHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ _inst_2)}} {{g : AddMonoidHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ _inst_2)}}, (forall (i : ι), Eq.{max (succ u3) (succ u2)} (AddMonoidHom.{u2, u3} (β i) γ (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{u3} γ _inst_2)) (AddMonoidHom.comp.{u2, max u1 u2, u3} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ _inst_2) f (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) i)) (AddMonoidHom.comp.{u2, max u1 u2, u3} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ _inst_2) g (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i))) -> (Eq.{max (succ u3) (succ (max u1 u2))} (AddMonoidHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ _inst_2)) f g)
-but is expected to have type
-  forall {ι : Type.{u2}} [dec_ι : DecidableEq.{succ u2} ι] {β : ι -> Type.{u3}} [_inst_1 : forall (i : ι), AddCommMonoid.{u3} (β i)] {γ : Type.{u1}} [_inst_2 : AddMonoid.{u1} γ] {{f : AddMonoidHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u1} γ _inst_2)}} {{g : AddMonoidHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u1} γ _inst_2)}}, (forall (i : ι), Eq.{max (succ u3) (succ u1)} (AddMonoidHom.{u3, u1} (β i) γ (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{u1} γ _inst_2)) (AddMonoidHom.comp.{u3, max u2 u3, u1} (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u1} γ _inst_2) f (DirectSum.of.{u2, u3} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) i)) (AddMonoidHom.comp.{u3, max u2 u3, u1} (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u1} γ _inst_2) g (DirectSum.of.{u2, u3} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) i))) -> (Eq.{max (max (succ u2) (succ u3)) (succ u1)} (AddMonoidHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u1} γ _inst_2)) f g)
-Case conversion may be inaccurate. Consider using '#align direct_sum.add_hom_ext' DirectSum.addHom_ext'ₓ'. -/
 /-- If two additive homomorphisms from `⨁ i, β i` are equal on each `of β i y`,
 then they are equal.
 
@@ -265,29 +175,17 @@ section ToAddMonoid
 
 variable (φ : ∀ i, β i →+ γ) (ψ : (⨁ i, β i) →+ γ)
 
-/- warning: direct_sum.to_add_monoid -> DirectSum.toAddMonoid is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] {γ : Type.{u3}} [_inst_2 : AddCommMonoid.{u3} γ], (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) -> (AddMonoidHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)))
-but is expected to have type
-  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] {γ : Type.{u3}} [_inst_2 : AddCommMonoid.{u3} γ], (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) -> (AddMonoidHom.{max u2 u1, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)))
-Case conversion may be inaccurate. Consider using '#align direct_sum.to_add_monoid DirectSum.toAddMonoidₓ'. -/
 /-- `to_add_monoid φ` is the natural homomorphism from `⨁ i, β i` to `γ`
 induced by a family `φ` of homomorphisms `β i → γ`. -/
 def toAddMonoid : (⨁ i, β i) →+ γ :=
   Dfinsupp.liftAddHom φ
 #align direct_sum.to_add_monoid DirectSum.toAddMonoid
 
-/- warning: direct_sum.to_add_monoid_of -> DirectSum.toAddMonoid_of is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align direct_sum.to_add_monoid_of DirectSum.toAddMonoid_ofₓ'. -/
 @[simp]
 theorem toAddMonoid_of (i) (x : β i) : toAddMonoid φ (of β i x) = φ i x :=
   Dfinsupp.liftAddHom_apply_single φ i x
 #align direct_sum.to_add_monoid_of DirectSum.toAddMonoid_of
 
-/- warning: direct_sum.to_add_monoid.unique -> DirectSum.toAddMonoid.unique is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align direct_sum.to_add_monoid.unique DirectSum.toAddMonoid.uniqueₓ'. -/
 theorem toAddMonoid.unique (f : ⨁ i, β i) : ψ f = toAddMonoid (fun i => ψ.comp (of β i)) f := by
   congr ; ext; simp [to_add_monoid, of]
 #align direct_sum.to_add_monoid.unique DirectSum.toAddMonoid.unique
@@ -296,12 +194,6 @@ end ToAddMonoid
 
 section FromAddMonoid
 
-/- warning: direct_sum.from_add_monoid -> DirectSum.fromAddMonoid is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] {γ : Type.{u3}} [_inst_2 : AddCommMonoid.{u3} γ], AddMonoidHom.{max u1 u2 u3, max (max u1 u2) u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoidHom.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoid.toAddZeroClass.{max u1 u2 u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u2 u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (DirectSum.addCommMonoid.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (AddMonoidHom.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (AddMonoidHom.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addCommMonoid.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))
-but is expected to have type
-  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] {γ : Type.{u3}} [_inst_2 : AddCommMonoid.{u3} γ], AddMonoidHom.{max (max u2 u3) u1, max (max u2 u1) u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addCommMonoid.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))
-Case conversion may be inaccurate. Consider using '#align direct_sum.from_add_monoid DirectSum.fromAddMonoidₓ'. -/
 /-- `from_add_monoid φ` is the natural homomorphism from `γ` to `⨁ i, β i`
 induced by a family `φ` of homomorphisms `γ → β i`.
 
@@ -310,17 +202,11 @@ def fromAddMonoid : (⨁ i, γ →+ β i) →+ γ →+ ⨁ i, β i :=
   toAddMonoid fun i => AddMonoidHom.compHom (of β i)
 #align direct_sum.from_add_monoid DirectSum.fromAddMonoid
 
-/- warning: direct_sum.from_add_monoid_of -> DirectSum.fromAddMonoid_of is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align direct_sum.from_add_monoid_of DirectSum.fromAddMonoid_ofₓ'. -/
 @[simp]
 theorem fromAddMonoid_of (i : ι) (f : γ →+ β i) : fromAddMonoid (of _ i f) = (of _ i).comp f := by
   rw [from_add_monoid, to_add_monoid_of]; rfl
 #align direct_sum.from_add_monoid_of DirectSum.fromAddMonoid_of
 
-/- warning: direct_sum.from_add_monoid_of_apply -> DirectSum.fromAddMonoid_of_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align direct_sum.from_add_monoid_of_apply DirectSum.fromAddMonoid_of_applyₓ'. -/
 theorem fromAddMonoid_of_apply (i : ι) (f : γ →+ β i) (x : γ) :
     fromAddMonoid (of _ i f) x = of _ i (f x) := by rw [from_add_monoid_of, AddMonoidHom.coe_comp]
 #align direct_sum.from_add_monoid_of_apply DirectSum.fromAddMonoid_of_apply
@@ -329,9 +215,6 @@ end FromAddMonoid
 
 variable (β)
 
-/- warning: direct_sum.set_to_set -> DirectSum.setToSet is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align direct_sum.set_to_set DirectSum.setToSetₓ'. -/
 -- TODO: generalize this to remove the assumption `S ⊆ T`.
 /-- `set_to_set β S T h` is the natural homomorphism `⨁ (i : S), β i → ⨁ (i : T), β i`,
 where `h : S ⊆ T`. -/
@@ -356,12 +239,6 @@ instance uniqueOfIsEmpty [IsEmpty ι] : Unique (⨁ i, β i) :=
 #align direct_sum.unique_of_is_empty DirectSum.uniqueOfIsEmpty
 -/
 
-/- warning: direct_sum.id -> DirectSum.id is a dubious translation:
-lean 3 declaration is
-  forall (M : Type.{u1}) (ι : optParam.{succ (succ u2)} Type.{u2} PUnit.{succ u2}) [_inst_3 : AddCommMonoid.{u1} M] [_inst_4 : Unique.{succ u2} ι], AddEquiv.{max u2 u1, u1} (DirectSum.{u2, u1} ι (fun (_x : ι) => M) (fun (i : ι) => _inst_3)) M (AddZeroClass.toHasAdd.{max u2 u1} (DirectSum.{u2, u1} ι (fun (_x : ι) => M) (fun (i : ι) => _inst_3)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (_x : ι) => M) (fun (i : ι) => _inst_3)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (_x : ι) => M) (fun (i : ι) => _inst_3)) (DirectSum.addCommMonoid.{u2, u1} ι (fun (_x : ι) => M) (fun (i : ι) => _inst_3))))) (AddZeroClass.toHasAdd.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)))
-but is expected to have type
-  forall (M : Type.{u1}) (ι : optParam.{succ (succ u2)} Type.{u2} PUnit.{succ u2}) [_inst_3 : AddCommMonoid.{u1} M] [_inst_4 : Unique.{succ u2} ι], AddEquiv.{max u1 u2, u1} (DirectSum.{u2, u1} ι (fun (_x : ι) => M) (fun (i : ι) => _inst_3)) M (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u2, u1} ι (fun (_x : ι) => M) (fun (i : ι) => _inst_3)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u2, u1} ι (fun (_x : ι) => M) (fun (i : ι) => _inst_3)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u2, u1} ι (fun (_x : ι) => M) (fun (i : ι) => _inst_3)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (_x : ι) => M) (fun (i : ι) => _inst_3))))) (AddZeroClass.toAdd.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)))
-Case conversion may be inaccurate. Consider using '#align direct_sum.id DirectSum.idₓ'. -/
 /-- The natural equivalence between `⨁ _ : ι, M` and `M` when `unique ι`. -/
 protected def id (M : Type v) (ι : Type _ := PUnit) [AddCommMonoid M] [Unique ι] :
     (⨁ _ : ι, M) ≃+ M :=
@@ -389,9 +266,6 @@ def equivCongrLeft (h : ι ≃ κ) : (⨁ i, β i) ≃+ ⨁ k, β (h.symm k) :=
 #align direct_sum.equiv_congr_left DirectSum.equivCongrLeft
 -/
 
-/- warning: direct_sum.equiv_congr_left_apply -> DirectSum.equivCongrLeft_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align direct_sum.equiv_congr_left_apply DirectSum.equivCongrLeft_applyₓ'. -/
 @[simp]
 theorem equivCongrLeft_apply (h : ι ≃ κ) (f : ⨁ i, β i) (k : κ) :
     equivCongrLeft h f k = f (h.symm k) :=
@@ -406,12 +280,6 @@ variable {α : Option ι → Type w} [∀ i, AddCommMonoid (α i)]
 
 include dec_ι
 
-/- warning: direct_sum.add_equiv_prod_direct_sum -> DirectSum.addEquivProdDirectSum is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] {α : (Option.{u1} ι) -> Type.{u2}} [_inst_3 : forall (i : Option.{u1} ι), AddCommMonoid.{u2} (α i)], AddEquiv.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => _inst_3 i)) (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (DirectSum.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => _inst_3 (Option.some.{u1} ι i)))) (AddZeroClass.toHasAdd.{max u1 u2} (DirectSum.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => _inst_3 i))))) (Prod.hasAdd.{u2, max u1 u2} (α (Option.none.{u1} ι)) (DirectSum.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => _inst_3 (Option.some.{u1} ι i))) (AddZeroClass.toHasAdd.{u2} (α (Option.none.{u1} ι)) (AddMonoid.toAddZeroClass.{u2} (α (Option.none.{u1} ι)) (AddCommMonoid.toAddMonoid.{u2} (α (Option.none.{u1} ι)) (_inst_3 (Option.none.{u1} ι))))) (AddZeroClass.toHasAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => _inst_3 (Option.some.{u1} ι i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => _inst_3 (Option.some.{u1} ι i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => _inst_3 (Option.some.{u1} ι i))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => _inst_3 (Option.some.{u1} ι i)))))))
-but is expected to have type
-  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] {α : (Option.{u1} ι) -> Type.{u2}} [_inst_3 : forall (i : Option.{u1} ι), AddCommMonoid.{u2} (α i)], AddEquiv.{max u2 u1, max u2 u1} (DirectSum.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => _inst_3 i)) (Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (DirectSum.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => _inst_3 (Option.some.{u1} ι i)))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => _inst_3 i))))) (Prod.instAddSum.{u2, max u1 u2} (α (Option.none.{u1} ι)) (DirectSum.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => _inst_3 (Option.some.{u1} ι i))) (AddZeroClass.toAdd.{u2} (α (Option.none.{u1} ι)) (AddMonoid.toAddZeroClass.{u2} (α (Option.none.{u1} ι)) (AddCommMonoid.toAddMonoid.{u2} (α (Option.none.{u1} ι)) (_inst_3 (Option.none.{u1} ι))))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => _inst_3 (Option.some.{u1} ι i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => _inst_3 (Option.some.{u1} ι i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => _inst_3 (Option.some.{u1} ι i))) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => _inst_3 (Option.some.{u1} ι i)))))))
-Case conversion may be inaccurate. Consider using '#align direct_sum.add_equiv_prod_direct_sum DirectSum.addEquivProdDirectSumₓ'. -/
 /-- Isomorphism obtained by separating the term of index `none` of a direct sum over `option ι`.-/
 @[simps]
 noncomputable def addEquivProdDirectSum : (⨁ i, α i) ≃+ α none × ⨁ i, α (some i) :=
@@ -424,12 +292,6 @@ section Sigma
 
 variable {α : ι → Type u} {δ : ∀ i, α i → Type w} [∀ i j, AddCommMonoid (δ i j)]
 
-/- warning: direct_sum.sigma_curry -> DirectSum.sigmaCurry is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} {δ : forall (i : ι), (α i) -> Type.{u3}} [_inst_3 : forall (i : ι) (j : α i), AddCommMonoid.{u3} (δ i j)], AddMonoidHom.{max (max u2 u1) u3, max u2 u1 u3} (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddMonoid.toAddZeroClass.{max (max u2 u1) u3} (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (AddCommMonoid.toAddMonoid.{max (max u2 u1) u3} (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (DirectSum.addCommMonoid.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))))) (AddMonoid.toAddZeroClass.{max u2 u1 u3} (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max u2 u1 u3} (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (DirectSum.addCommMonoid.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)))))
-but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} {δ : forall (i : ι), (α i) -> Type.{u3}} [_inst_3 : forall (i : ι) (j : α i), AddCommMonoid.{u3} (δ i j)], AddMonoidHom.{max u3 u1 u2, max (max u3 u1) u2} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (instAddCommMonoidDirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (instAddCommMonoidDirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)))))
-Case conversion may be inaccurate. Consider using '#align direct_sum.sigma_curry DirectSum.sigmaCurryₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 /-- The natural map between `⨁ (i : Σ i, α i), δ i.1 i.2` and `⨁ i (j : α i), δ i j`.-/
 noncomputable def sigmaCurry : (⨁ i : Σi, _, δ i.1 i.2) →+ ⨁ (i) (j), δ i j
@@ -439,21 +301,12 @@ noncomputable def sigmaCurry : (⨁ i : Σi, _, δ i.1 i.2) →+ ⨁ (i) (j), δ
   map_add' f g := @Dfinsupp.sigmaCurry_add _ _ δ _ f g
 #align direct_sum.sigma_curry DirectSum.sigmaCurry
 
-/- warning: direct_sum.sigma_curry_apply -> DirectSum.sigmaCurry_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align direct_sum.sigma_curry_apply DirectSum.sigmaCurry_applyₓ'. -/
 @[simp]
 theorem sigmaCurry_apply (f : ⨁ i : Σi, _, δ i.1 i.2) (i : ι) (j : α i) :
     sigmaCurry f i j = f ⟨i, j⟩ :=
   @Dfinsupp.sigmaCurry_apply _ _ δ _ f i j
 #align direct_sum.sigma_curry_apply DirectSum.sigmaCurry_apply
 
-/- warning: direct_sum.sigma_uncurry -> DirectSum.sigmaUncurry is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} {δ : forall (i : ι), (α i) -> Type.{u3}} [_inst_3 : forall (i : ι) (j : α i), AddCommMonoid.{u3} (δ i j)] [_inst_4 : forall (i : ι), DecidableEq.{succ u1} (α i)] [_inst_5 : forall (i : ι) (j : α i), DecidableEq.{succ u3} (δ i j)], AddMonoidHom.{max u2 u1 u3, max (max u2 u1) u3} (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (AddMonoid.toAddZeroClass.{max u2 u1 u3} (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max u2 u1 u3} (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (DirectSum.addCommMonoid.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))))) (AddMonoid.toAddZeroClass.{max (max u2 u1) u3} (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (AddCommMonoid.toAddMonoid.{max (max u2 u1) u3} (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (DirectSum.addCommMonoid.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)))))
-but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} {δ : forall (i : ι), (α i) -> Type.{u3}} [_inst_3 : forall (i : ι) (j : α i), AddCommMonoid.{u3} (δ i j)] [_inst_4 : forall (i : ι), DecidableEq.{succ u1} (α i)] [_inst_5 : forall (i : ι) (j : α i), DecidableEq.{succ u3} (δ i j)], AddMonoidHom.{max (max u3 u1) u2, max u3 u1 u2} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (instAddCommMonoidDirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (instAddCommMonoidDirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)))))
-Case conversion may be inaccurate. Consider using '#align direct_sum.sigma_uncurry DirectSum.sigmaUncurryₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 /-- The natural map between `⨁ i (j : α i), δ i j` and `Π₀ (i : Σ i, α i), δ i.1 i.2`, inverse of
 `curry`.-/
@@ -465,9 +318,6 @@ def sigmaUncurry [∀ i, DecidableEq (α i)] [∀ i j, DecidableEq (δ i j)] :
   map_add' := Dfinsupp.sigmaUncurry_add
 #align direct_sum.sigma_uncurry DirectSum.sigmaUncurry
 
-/- warning: direct_sum.sigma_uncurry_apply -> DirectSum.sigmaUncurry_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align direct_sum.sigma_uncurry_apply DirectSum.sigmaUncurry_applyₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 @[simp]
 theorem sigmaUncurry_apply [∀ i, DecidableEq (α i)] [∀ i j, DecidableEq (δ i j)]
@@ -475,12 +325,6 @@ theorem sigmaUncurry_apply [∀ i, DecidableEq (α i)] [∀ i j, DecidableEq (δ
   Dfinsupp.sigmaUncurry_apply f i j
 #align direct_sum.sigma_uncurry_apply DirectSum.sigmaUncurry_apply
 
-/- warning: direct_sum.sigma_curry_equiv -> DirectSum.sigmaCurryEquiv is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} {δ : forall (i : ι), (α i) -> Type.{u3}} [_inst_3 : forall (i : ι) (j : α i), AddCommMonoid.{u3} (δ i j)] [_inst_4 : forall (i : ι), DecidableEq.{succ u1} (α i)] [_inst_5 : forall (i : ι) (j : α i), DecidableEq.{succ u3} (δ i j)], AddEquiv.{max (max u2 u1) u3, max u2 u1 u3} (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddZeroClass.toHasAdd.{max (max u2 u1) u3} (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (AddMonoid.toAddZeroClass.{max (max u2 u1) u3} (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (AddCommMonoid.toAddMonoid.{max (max u2 u1) u3} (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (DirectSum.addCommMonoid.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)))))) (AddZeroClass.toHasAdd.{max u2 u1 u3} (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddMonoid.toAddZeroClass.{max u2 u1 u3} (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max u2 u1 u3} (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (DirectSum.addCommMonoid.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))))))
-but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} {δ : forall (i : ι), (α i) -> Type.{u3}} [_inst_3 : forall (i : ι) (j : α i), AddCommMonoid.{u3} (δ i j)] [_inst_4 : forall (i : ι), DecidableEq.{succ u1} (α i)] [_inst_5 : forall (i : ι) (j : α i), DecidableEq.{succ u3} (δ i j)], AddEquiv.{max u3 u1 u2, max (max u3 u1) u2} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddZeroClass.toAdd.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (instAddCommMonoidDirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)))))) (AddZeroClass.toAdd.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (instAddCommMonoidDirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))))))
-Case conversion may be inaccurate. Consider using '#align direct_sum.sigma_curry_equiv DirectSum.sigmaCurryEquivₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 /-- The natural map between `⨁ (i : Σ i, α i), δ i.1 i.2` and `⨁ i (j : α i), δ i j`.-/
 noncomputable def sigmaCurryEquiv [∀ i, DecidableEq (α i)] [∀ i j, DecidableEq (δ i j)] :
@@ -490,12 +334,6 @@ noncomputable def sigmaCurryEquiv [∀ i, DecidableEq (α i)] [∀ i j, Decidabl
 
 end Sigma
 
-/- warning: direct_sum.coe_add_monoid_hom -> DirectSum.coeAddMonoidHom is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {M : Type.{u2}} {S : Type.{u3}} [_inst_3 : DecidableEq.{succ u1} ι] [_inst_4 : AddCommMonoid.{u2} M] [_inst_5 : SetLike.{u3, u2} S M] [_inst_6 : AddSubmonoidClass.{u3, u2} S M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4)) _inst_5] (A : ι -> S), AddMonoidHom.{max u1 u2, u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))) M (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))))) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4))
-but is expected to have type
-  forall {ι : Type.{u1}} {M : Type.{u2}} {S : Type.{u3}} [_inst_3 : DecidableEq.{succ u1} ι] [_inst_4 : AddCommMonoid.{u2} M] [_inst_5 : SetLike.{u3, u2} S M] [_inst_6 : AddSubmonoidClass.{u3, u2} S M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4)) _inst_5] (A : ι -> S), AddMonoidHom.{max u2 u1, u2} (DirectSum.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u3} M S (SetLike.instMembership.{u3, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))) M (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u3} M S (SetLike.instMembership.{u3, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u3} M S (SetLike.instMembership.{u3, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u3} M S (SetLike.instMembership.{u3, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))))) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4))
-Case conversion may be inaccurate. Consider using '#align direct_sum.coe_add_monoid_hom DirectSum.coeAddMonoidHomₓ'. -/
 /-- The canonical embedding from `⨁ i, A i` to `M` where `A` is a collection of `add_submonoid M`
 indexed by `ι`.
 
@@ -505,9 +343,6 @@ protected def coeAddMonoidHom {M S : Type _} [DecidableEq ι] [AddCommMonoid M]
   toAddMonoid fun i => AddSubmonoidClass.Subtype (A i)
 #align direct_sum.coe_add_monoid_hom DirectSum.coeAddMonoidHom
 
-/- warning: direct_sum.coe_add_monoid_hom_of -> DirectSum.coeAddMonoidHom_of is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align direct_sum.coe_add_monoid_hom_of DirectSum.coeAddMonoidHom_ofₓ'. -/
 @[simp]
 theorem coeAddMonoidHom_of {M S : Type _} [DecidableEq ι] [AddCommMonoid M] [SetLike S M]
     [AddSubmonoidClass S M] (A : ι → S) (i : ι) (x : A i) :
@@ -515,9 +350,6 @@ theorem coeAddMonoidHom_of {M S : Type _} [DecidableEq ι] [AddCommMonoid M] [Se
   toAddMonoid_of _ _ _
 #align direct_sum.coe_add_monoid_hom_of DirectSum.coeAddMonoidHom_of
 
-/- warning: direct_sum.coe_of_apply -> DirectSum.coe_of_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align direct_sum.coe_of_apply DirectSum.coe_of_applyₓ'. -/
 theorem coe_of_apply {M S : Type _} [DecidableEq ι] [AddCommMonoid M] [SetLike S M]
     [AddSubmonoidClass S M] {A : ι → S} (i j : ι) (x : A i) :
     (of _ i x j : M) = if i = j then x else 0 :=
@@ -540,12 +372,6 @@ def IsInternal {M S : Type _} [DecidableEq ι] [AddCommMonoid M] [SetLike S M]
 #align direct_sum.is_internal DirectSum.IsInternal
 -/
 
-/- warning: direct_sum.is_internal.add_submonoid_supr_eq_top -> DirectSum.IsInternal.addSubmonoid_iSup_eq_top is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_3 : DecidableEq.{succ u1} ι] [_inst_4 : AddCommMonoid.{u2} M] (A : ι -> (AddSubmonoid.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4)))), (DirectSum.IsInternal.{u1, u2, u2} ι M (AddSubmonoid.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4))) (fun (a : ι) (b : ι) => _inst_3 a b) _inst_4 (AddSubmonoid.setLike.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4))) (AddSubmonoid.add_submonoidClass.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4))) A) -> (Eq.{succ u2} (AddSubmonoid.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4))) (iSup.{u2, succ u1} (AddSubmonoid.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4))) (CompleteSemilatticeSup.toHasSup.{u2} (AddSubmonoid.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4))) (CompleteLattice.toCompleteSemilatticeSup.{u2} (AddSubmonoid.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4))) (AddSubmonoid.completeLattice.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4))))) ι A) (Top.top.{u2} (AddSubmonoid.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4))) (AddSubmonoid.hasTop.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4)))))
-but is expected to have type
-  forall {ι : Type.{u2}} {M : Type.{u1}} [_inst_3 : DecidableEq.{succ u2} ι] [_inst_4 : AddCommMonoid.{u1} M] (A : ι -> (AddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_4)))), (DirectSum.IsInternal.{u2, u1, u1} ι M (AddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_4))) (fun (a : ι) (b : ι) => _inst_3 a b) _inst_4 (AddSubmonoid.instSetLikeAddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_4))) (AddSubmonoid.instAddSubmonoidClassAddSubmonoidInstSetLikeAddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_4))) A) -> (Eq.{succ u1} (AddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_4))) (iSup.{u1, succ u2} (AddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_4))) (CompleteLattice.toSupSet.{u1} (AddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_4))) (AddSubmonoid.instCompleteLatticeAddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_4)))) ι A) (Top.top.{u1} (AddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_4))) (AddSubmonoid.instTopAddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_4)))))
-Case conversion may be inaccurate. Consider using '#align direct_sum.is_internal.add_submonoid_supr_eq_top DirectSum.IsInternal.addSubmonoid_iSup_eq_topₓ'. -/
 theorem IsInternal.addSubmonoid_iSup_eq_top {M : Type _} [DecidableEq ι] [AddCommMonoid M]
     (A : ι → AddSubmonoid M) (h : IsInternal A) : iSup A = ⊤ :=
   by
Diff
@@ -288,11 +288,8 @@ theorem toAddMonoid_of (i) (x : β i) : toAddMonoid φ (of β i x) = φ i x :=
 /- warning: direct_sum.to_add_monoid.unique -> DirectSum.toAddMonoid.unique is a dubious translation:
 <too large>
 Case conversion may be inaccurate. Consider using '#align direct_sum.to_add_monoid.unique DirectSum.toAddMonoid.uniqueₓ'. -/
-theorem toAddMonoid.unique (f : ⨁ i, β i) : ψ f = toAddMonoid (fun i => ψ.comp (of β i)) f :=
-  by
-  congr
-  ext
-  simp [to_add_monoid, of]
+theorem toAddMonoid.unique (f : ⨁ i, β i) : ψ f = toAddMonoid (fun i => ψ.comp (of β i)) f := by
+  congr ; ext; simp [to_add_monoid, of]
 #align direct_sum.to_add_monoid.unique DirectSum.toAddMonoid.unique
 
 end ToAddMonoid
@@ -317,10 +314,8 @@ def fromAddMonoid : (⨁ i, γ →+ β i) →+ γ →+ ⨁ i, β i :=
 <too large>
 Case conversion may be inaccurate. Consider using '#align direct_sum.from_add_monoid_of DirectSum.fromAddMonoid_ofₓ'. -/
 @[simp]
-theorem fromAddMonoid_of (i : ι) (f : γ →+ β i) : fromAddMonoid (of _ i f) = (of _ i).comp f :=
-  by
-  rw [from_add_monoid, to_add_monoid_of]
-  rfl
+theorem fromAddMonoid_of (i : ι) (f : γ →+ β i) : fromAddMonoid (of _ i f) = (of _ i).comp f := by
+  rw [from_add_monoid, to_add_monoid_of]; rfl
 #align direct_sum.from_add_monoid_of DirectSum.fromAddMonoid_of
 
 /- warning: direct_sum.from_add_monoid_of_apply -> DirectSum.fromAddMonoid_of_apply is a dubious translation:
Diff
@@ -202,10 +202,7 @@ theorem sum_support_of [∀ (i : ι) (x : β i), Decidable (x ≠ 0)] (x : ⨁ i
 variable {β}
 
 /- warning: direct_sum.mk_injective -> DirectSum.mk_injective is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] (s : Finset.{u1} ι), Function.Injective.{max (succ u1) (succ u2), succ (max u1 u2)} (forall (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (AddMonoidHom.{max u1 u2, max u1 u2} (forall (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (Pi.addZeroClass.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) (fun (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) => β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) i)) (fun (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) => AddMonoid.toAddZeroClass.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) i)) (AddCommMonoid.toAddMonoid.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) i)) ((fun (i : ι) => _inst_1 i) (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i))))) (fun (_x : AddMonoidHom.{max u1 u2, max u1 u2} (forall (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (Pi.addZeroClass.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) (fun (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) => β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) i)) (fun (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) => AddMonoid.toAddZeroClass.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) i)) (AddCommMonoid.toAddMonoid.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) i)) ((fun (i : ι) => _inst_1 i) (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i))))) => (forall (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) i)) -> (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i))) (AddMonoidHom.hasCoeToFun.{max u1 u2, max u1 u2} (forall (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (Pi.addZeroClass.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) (fun (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) => β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) i)) (fun (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) => AddMonoid.toAddZeroClass.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) i)) (AddCommMonoid.toAddMonoid.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) i)) ((fun (i : ι) => _inst_1 i) (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i))))) (DirectSum.mk.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) s))
-but is expected to have type
-  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] (s : Finset.{u1} ι), Function.Injective.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (AddMonoidHom.{max u1 u2, max u2 u1} (forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Pi.addZeroClass.{u1, u2} (Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) (fun (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) => β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (fun (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) => AddMonoid.toAddZeroClass.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (AddCommMonoid.toAddMonoid.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (_inst_1 (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (fun (_x : forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) => DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _x) (AddHomClass.toFunLike.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidHom.{max u1 u2, max u2 u1} (forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Pi.addZeroClass.{u1, u2} (Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) (fun (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) => β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (fun (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) => AddMonoid.toAddZeroClass.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (AddCommMonoid.toAddMonoid.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (_inst_1 (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toAdd.{max u1 u2} (forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (Pi.addZeroClass.{u1, u2} (Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) (fun (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) => β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (fun (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) => AddMonoid.toAddZeroClass.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (AddCommMonoid.toAddMonoid.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (_inst_1 (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)))))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidHom.{max u1 u2, max u2 u1} (forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Pi.addZeroClass.{u1, u2} (Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) (fun (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) => β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (fun (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) => AddMonoid.toAddZeroClass.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (AddCommMonoid.toAddMonoid.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (_inst_1 (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Pi.addZeroClass.{u1, u2} (Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) (fun (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) => β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (fun (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) => AddMonoid.toAddZeroClass.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (AddCommMonoid.toAddMonoid.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (_inst_1 (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.addMonoidHomClass.{max u1 u2, max u1 u2} (forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Pi.addZeroClass.{u1, u2} (Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) (fun (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) => β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (fun (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) => AddMonoid.toAddZeroClass.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (AddCommMonoid.toAddMonoid.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (_inst_1 (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))) (DirectSum.mk.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) s))
+<too large>
 Case conversion may be inaccurate. Consider using '#align direct_sum.mk_injective DirectSum.mk_injectiveₓ'. -/
 theorem mk_injective (s : Finset ι) : Function.Injective (mk β s) :=
   Dfinsupp.mk_injective s
@@ -237,10 +234,7 @@ protected theorem induction_on {C : (⨁ i, β i) → Prop} (x : ⨁ i, β i) (H
 #align direct_sum.induction_on DirectSum.induction_on
 
 /- warning: direct_sum.add_hom_ext -> DirectSum.addHom_ext is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] {γ : Type.{u3}} [_inst_2 : AddMonoid.{u3} γ] {{f : AddMonoidHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ _inst_2)}} {{g : AddMonoidHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ _inst_2)}}, (forall (i : ι) (y : β i), Eq.{succ u3} γ (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ _inst_2)) (fun (_x : AddMonoidHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ _inst_2)) => (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) -> γ) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ _inst_2)) f (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) => (β i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) i) y)) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ _inst_2)) (fun (_x : AddMonoidHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ _inst_2)) => (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) -> γ) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ _inst_2)) g (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) => (β i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) i) y))) -> (Eq.{max (succ u3) (succ (max u1 u2))} (AddMonoidHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ _inst_2)) f g)
-but is expected to have type
-  forall {ι : Type.{u2}} [dec_ι : DecidableEq.{succ u2} ι] {β : ι -> Type.{u3}} [_inst_1 : forall (i : ι), AddCommMonoid.{u3} (β i)] {γ : Type.{u1}} [_inst_2 : AddMonoid.{u1} γ] {{f : AddMonoidHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u1} γ _inst_2)}} {{g : AddMonoidHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u1} γ _inst_2)}}, (forall (i : ι) (y : β i), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => γ) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (AddMonoidHom.{u3, max u3 u2} (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (fun (a : β i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β i) => DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) a) (AddHomClass.toFunLike.{max u2 u3, u3, max u2 u3} (AddMonoidHom.{u3, max u3 u2} (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toAdd.{u3} (β i) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i)))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u3, u3, max u2 u3} (AddMonoidHom.{u3, max u3 u2} (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.addMonoidHomClass.{u3, max u2 u3} (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))) (DirectSum.of.{u2, u3} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i) y)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (AddMonoidHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u1} γ _inst_2)) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (fun (_x : DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => γ) _x) (AddHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u1} γ _inst_2)) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{u1} γ (AddMonoid.toAddZeroClass.{u1} γ _inst_2)) (AddMonoidHomClass.toAddHomClass.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u1} γ _inst_2)) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u1} γ _inst_2) (AddMonoidHom.addMonoidHomClass.{max u2 u3, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u1} γ _inst_2)))) f (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (AddMonoidHom.{u3, max u3 u2} (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (fun (_x : β i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β i) => DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _x) (AddHomClass.toFunLike.{max u2 u3, u3, max u2 u3} (AddMonoidHom.{u3, max u3 u2} (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toAdd.{u3} (β i) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i)))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u3, u3, max u2 u3} (AddMonoidHom.{u3, max u3 u2} (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.addMonoidHomClass.{u3, max u2 u3} (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))) (DirectSum.of.{u2, u3} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i) y)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (AddMonoidHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u1} γ _inst_2)) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (fun (_x : DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => γ) _x) (AddHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u1} γ _inst_2)) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{u1} γ (AddMonoid.toAddZeroClass.{u1} γ _inst_2)) (AddMonoidHomClass.toAddHomClass.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u1} γ _inst_2)) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u1} γ _inst_2) (AddMonoidHom.addMonoidHomClass.{max u2 u3, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u1} γ _inst_2)))) g (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (AddMonoidHom.{u3, max u3 u2} (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (fun (_x : β i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β i) => DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _x) (AddHomClass.toFunLike.{max u2 u3, u3, max u2 u3} (AddMonoidHom.{u3, max u3 u2} (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toAdd.{u3} (β i) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i)))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u3, u3, max u2 u3} (AddMonoidHom.{u3, max u3 u2} (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.addMonoidHomClass.{u3, max u2 u3} (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))) (DirectSum.of.{u2, u3} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i) y))) -> (Eq.{max (max (succ u2) (succ u3)) (succ u1)} (AddMonoidHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u1} γ _inst_2)) f g)
+<too large>
 Case conversion may be inaccurate. Consider using '#align direct_sum.add_hom_ext DirectSum.addHom_extₓ'. -/
 /-- If two additive homomorphisms from `⨁ i, β i` are equal on each `of β i y`,
 then they are equal. -/
@@ -284,10 +278,7 @@ def toAddMonoid : (⨁ i, β i) →+ γ :=
 #align direct_sum.to_add_monoid DirectSum.toAddMonoid
 
 /- warning: direct_sum.to_add_monoid_of -> DirectSum.toAddMonoid_of is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] {γ : Type.{u3}} [_inst_2 : AddCommMonoid.{u3} γ] (φ : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (i : ι) (x : β i), Eq.{succ u3} γ (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) -> γ) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (DirectSum.toAddMonoid.{u1, u2, u3} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) γ _inst_2 φ) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) ((fun (i : ι) => _inst_1 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) ((fun (i : ι) => _inst_1 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i))))) => (β i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) ((fun (i : ι) => _inst_1 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i) x)) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (β i) γ (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (_x : AddMonoidHom.{u2, u3} (β i) γ (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => (β i) -> γ) (AddMonoidHom.hasCoeToFun.{u2, u3} (β i) γ (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (φ i) x)
-but is expected to have type
-  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] {γ : Type.{u3}} [_inst_2 : AddCommMonoid.{u3} γ] (φ : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (i : ι) (x : β i), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => γ) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (fun (a : β i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β i) => DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) a) (AddHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toAdd.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.addMonoidHomClass.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i) x)) (FunLike.coe.{max (max (succ u3) (succ u1)) (succ u2), max (succ u1) (succ u2), succ u3} (AddMonoidHom.{max u2 u1, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (fun (_x : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => γ) _x) (AddHomClass.toFunLike.{max (max u3 u1) u2, max u1 u2, u3} (AddMonoidHom.{max u2 u1, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u1) u2, max u1 u2, u3} (AddMonoidHom.{max u2 u1, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))))) (DirectSum.toAddMonoid.{u1, u2, u3} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) γ _inst_2 φ) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (fun (_x : β i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β i) => DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _x) (AddHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toAdd.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.addMonoidHomClass.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i) x)) (FunLike.coe.{max (succ u3) (succ u2), succ u2, succ u3} (AddMonoidHom.{u2, u3} (β i) γ (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (β i) (fun (_x : β i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β i) => γ) _x) (AddHomClass.toFunLike.{max u3 u2, u2, u3} (AddMonoidHom.{u2, u3} (β i) γ (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (β i) γ (AddZeroClass.toAdd.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddZeroClass.toAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u2, u3} (AddMonoidHom.{u2, u3} (β i) γ (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (β i) γ (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoidHom.addMonoidHomClass.{u2, u3} (β i) γ (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))))) (φ i) x)
+<too large>
 Case conversion may be inaccurate. Consider using '#align direct_sum.to_add_monoid_of DirectSum.toAddMonoid_ofₓ'. -/
 @[simp]
 theorem toAddMonoid_of (i) (x : β i) : toAddMonoid φ (of β i x) = φ i x :=
@@ -295,10 +286,7 @@ theorem toAddMonoid_of (i) (x : β i) : toAddMonoid φ (of β i x) = φ i x :=
 #align direct_sum.to_add_monoid_of DirectSum.toAddMonoid_of
 
 /- warning: direct_sum.to_add_monoid.unique -> DirectSum.toAddMonoid.unique is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] {γ : Type.{u3}} [_inst_2 : AddCommMonoid.{u3} γ] (ψ : AddMonoidHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (f : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)), Eq.{succ u3} γ (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) -> γ) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) ψ f) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) -> γ) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (DirectSum.toAddMonoid.{u1, u2, u3} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) γ _inst_2 (fun (i : ι) => AddMonoidHom.comp.{u2, max u1 u2, u3} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) ψ (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i))) f)
-but is expected to have type
-  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] {γ : Type.{u3}} [_inst_2 : AddCommMonoid.{u3} γ] (ψ : AddMonoidHom.{max u2 u1, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (f : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => γ) f) (FunLike.coe.{max (max (succ u3) (succ u1)) (succ u2), max (succ u1) (succ u2), succ u3} (AddMonoidHom.{max u2 u1, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (fun (_x : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => γ) _x) (AddHomClass.toFunLike.{max (max u3 u1) u2, max u1 u2, u3} (AddMonoidHom.{max u2 u1, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u1) u2, max u1 u2, u3} (AddMonoidHom.{max u2 u1, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))))) ψ f) (FunLike.coe.{max (max (succ u3) (succ u1)) (succ u2), max (succ u1) (succ u2), succ u3} (AddMonoidHom.{max u2 u1, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (fun (_x : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => γ) _x) (AddHomClass.toFunLike.{max (max u3 u1) u2, max u1 u2, u3} (AddMonoidHom.{max u2 u1, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u1) u2, max u1 u2, u3} (AddMonoidHom.{max u2 u1, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))))) (DirectSum.toAddMonoid.{u1, u2, u3} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) γ _inst_2 (fun (i : ι) => AddMonoidHom.comp.{u2, max u1 u2, u3} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) ψ (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i))) f)
+<too large>
 Case conversion may be inaccurate. Consider using '#align direct_sum.to_add_monoid.unique DirectSum.toAddMonoid.uniqueₓ'. -/
 theorem toAddMonoid.unique (f : ⨁ i, β i) : ψ f = toAddMonoid (fun i => ψ.comp (of β i)) f :=
   by
@@ -326,10 +314,7 @@ def fromAddMonoid : (⨁ i, γ →+ β i) →+ γ →+ ⨁ i, β i :=
 #align direct_sum.from_add_monoid DirectSum.fromAddMonoid
 
 /- warning: direct_sum.from_add_monoid_of -> DirectSum.fromAddMonoid_of is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] {γ : Type.{u3}} [_inst_2 : AddCommMonoid.{u3} γ] (i : ι) (f : AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))), Eq.{max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (coeFn.{max (succ (max (max u1 u2) u3)) (succ (max u1 u2 u3)), max (succ (max u1 u2 u3)) (succ (max (max u1 u2) u3))} (AddMonoidHom.{max u1 u2 u3, max (max u1 u2) u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoidHom.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoid.toAddZeroClass.{max u1 u2 u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u2 u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (DirectSum.addCommMonoid.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (AddMonoidHom.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (AddMonoidHom.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addCommMonoid.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) (fun (_x : AddMonoidHom.{max u1 u2 u3, max (max u1 u2) u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoidHom.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoid.toAddZeroClass.{max u1 u2 u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u2 u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (DirectSum.addCommMonoid.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (AddMonoidHom.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (AddMonoidHom.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addCommMonoid.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) => (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) -> (AddMonoidHom.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) (AddMonoidHom.hasCoeToFun.{max u1 u2 u3, max (max u1 u2) u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoidHom.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoid.toAddZeroClass.{max u1 u2 u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u2 u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (DirectSum.addCommMonoid.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (AddMonoidHom.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (AddMonoidHom.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addCommMonoid.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) (DirectSum.fromAddMonoid.{u1, u2, u3} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) γ _inst_2) (coeFn.{max (succ (max u1 u2 u3)) (succ (max u2 u3)), max (succ (max u2 u3)) (succ (max u1 u2 u3))} (AddMonoidHom.{max u2 u3, max u1 u2 u3} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u2 u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u2 u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (DirectSum.addCommMonoid.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (fun (_x : AddMonoidHom.{max u2 u3, max u1 u2 u3} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u2 u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u2 u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (DirectSum.addCommMonoid.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) => (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) -> (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoidHom.hasCoeToFun.{max u2 u3, max u1 u2 u3} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u2 u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u2 u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (DirectSum.addCommMonoid.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (DirectSum.of.{u1, max u2 u3} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)) i) f)) (AddMonoidHom.comp.{u3, u2, max u1 u2} γ (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) i) f)
-but is expected to have type
-  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] {γ : Type.{u3}} [_inst_2 : AddCommMonoid.{u3} γ] (i : ι) (f : AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))), Eq.{max (max (succ u3) (succ u1)) (succ u2)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) => AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (FunLike.coe.{max (succ u1) (succ (max u3 u2)), succ (max u3 u2), max (succ u1) (succ (max u3 u2))} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (a : AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) => DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) a) (AddHomClass.toFunLike.{max u1 u3 u2, max u3 u2, max u1 u3 u2} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddZeroClass.toAdd.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddZeroClass.toAdd.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHomClass.toAddHomClass.{max u1 u3 u2, max u3 u2, max u1 u3 u2} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoidHom.addMonoidHomClass.{max u3 u2, max u1 u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))))) (DirectSum.of.{u1, max u3 u2} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)) i) f)) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (AddMonoidHom.{max (max u2 u3) u1, max (max u2 u1) u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addCommMonoid.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (fun (_x : DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) => AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) _x) (AddHomClass.toFunLike.{max (max u3 u2) u1, max (max u3 u2) u1, max (max u3 u2) u1} (AddMonoidHom.{max (max u2 u3) u1, max (max u2 u1) u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addCommMonoid.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{max (max u3 u2) u1} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddZeroClass.toAdd.{max (max u3 u2) u1} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addCommMonoid.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u2) u1, max (max u3 u2) u1, max (max u3 u2) u1} (AddMonoidHom.{max (max u2 u3) u1, max (max u2 u1) u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addCommMonoid.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addCommMonoid.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addMonoidHomClass.{max (max u3 u2) u1, max (max u3 u2) u1} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addCommMonoid.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))))) (DirectSum.fromAddMonoid.{u1, u2, u3} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) γ _inst_2) (FunLike.coe.{max (succ u1) (succ (max u3 u2)), succ (max u3 u2), max (succ u1) (succ (max u3 u2))} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (_x : AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) => DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) _x) (AddHomClass.toFunLike.{max u1 u3 u2, max u3 u2, max u1 u3 u2} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddZeroClass.toAdd.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddZeroClass.toAdd.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHomClass.toAddHomClass.{max u1 u3 u2, max u3 u2, max u1 u3 u2} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoidHom.addMonoidHomClass.{max u3 u2, max u1 u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))))) (DirectSum.of.{u1, max u3 u2} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)) i) f)) (AddMonoidHom.comp.{u3, u2, max u1 u2} γ (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i) f)
+<too large>
 Case conversion may be inaccurate. Consider using '#align direct_sum.from_add_monoid_of DirectSum.fromAddMonoid_ofₓ'. -/
 @[simp]
 theorem fromAddMonoid_of (i : ι) (f : γ →+ β i) : fromAddMonoid (of _ i f) = (of _ i).comp f :=
@@ -339,10 +324,7 @@ theorem fromAddMonoid_of (i : ι) (f : γ →+ β i) : fromAddMonoid (of _ i f)
 #align direct_sum.from_add_monoid_of DirectSum.fromAddMonoid_of
 
 /- warning: direct_sum.from_add_monoid_of_apply -> DirectSum.fromAddMonoid_of_apply is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] {γ : Type.{u3}} [_inst_2 : AddCommMonoid.{u3} γ] (i : ι) (f : AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (x : γ), Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ (max u1 u2))} (AddMonoidHom.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (fun (_x : AddMonoidHom.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) => γ -> (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (AddMonoidHom.hasCoeToFun.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (coeFn.{max (succ (max (max u1 u2) u3)) (succ (max u1 u2 u3)), max (succ (max u1 u2 u3)) (succ (max (max u1 u2) u3))} (AddMonoidHom.{max u1 u2 u3, max (max u1 u2) u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoidHom.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoid.toAddZeroClass.{max u1 u2 u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u2 u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (DirectSum.addCommMonoid.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (AddMonoidHom.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (AddMonoidHom.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addCommMonoid.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) (fun (_x : AddMonoidHom.{max u1 u2 u3, max (max u1 u2) u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoidHom.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoid.toAddZeroClass.{max u1 u2 u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u2 u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (DirectSum.addCommMonoid.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (AddMonoidHom.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (AddMonoidHom.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addCommMonoid.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) => (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) -> (AddMonoidHom.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) (AddMonoidHom.hasCoeToFun.{max u1 u2 u3, max (max u1 u2) u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoidHom.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoid.toAddZeroClass.{max u1 u2 u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u2 u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (DirectSum.addCommMonoid.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (AddMonoidHom.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (AddMonoidHom.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addCommMonoid.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) (DirectSum.fromAddMonoid.{u1, u2, u3} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) γ _inst_2) (coeFn.{max (succ (max u1 u2 u3)) (succ (max u2 u3)), max (succ (max u2 u3)) (succ (max u1 u2 u3))} (AddMonoidHom.{max u2 u3, max u1 u2 u3} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u2 u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u2 u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (DirectSum.addCommMonoid.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (fun (_x : AddMonoidHom.{max u2 u3, max u1 u2 u3} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u2 u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u2 u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (DirectSum.addCommMonoid.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) => (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) -> (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoidHom.hasCoeToFun.{max u2 u3, max u1 u2 u3} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u2 u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u2 u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (DirectSum.addCommMonoid.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (DirectSum.of.{u1, max u2 u3} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)) i) f)) x) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) => (β i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) i) (coeFn.{max (succ u2) (succ u3), max (succ u3) (succ u2)} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (_x : AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) => γ -> (β i)) (AddMonoidHom.hasCoeToFun.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) f x))
-but is expected to have type
-  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] {γ : Type.{u3}} [_inst_2 : AddCommMonoid.{u3} γ] (i : ι) (f : AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (x : γ), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : γ) => DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) x) (FunLike.coe.{max (max (succ u3) (succ u1)) (succ u2), succ u3, max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) => AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (FunLike.coe.{max (succ u1) (succ (max u3 u2)), succ (max u3 u2), max (succ u1) (succ (max u3 u2))} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (a : AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) => DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) a) (AddHomClass.toFunLike.{max u1 u3 u2, max u3 u2, max u1 u3 u2} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddZeroClass.toAdd.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddZeroClass.toAdd.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHomClass.toAddHomClass.{max u1 u3 u2, max u3 u2, max u1 u3 u2} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoidHom.addMonoidHomClass.{max u3 u2, max u1 u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))))) (DirectSum.of.{u1, max u3 u2} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)) i) f)) γ (fun (_x : γ) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : γ) => DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _x) (AddHomClass.toFunLike.{max (max u3 u1) u2, u3, max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) => AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (FunLike.coe.{max (succ u1) (succ (max u3 u2)), succ (max u3 u2), max (succ u1) (succ (max u3 u2))} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (a : AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) => DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) a) (AddHomClass.toFunLike.{max u1 u3 u2, max u3 u2, max u1 u3 u2} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddZeroClass.toAdd.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddZeroClass.toAdd.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHomClass.toAddHomClass.{max u1 u3 u2, max u3 u2, max u1 u3 u2} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoidHom.addMonoidHomClass.{max u3 u2, max u1 u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))))) (DirectSum.of.{u1, max u3 u2} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)) i) f)) γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u1) u2, u3, max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) => AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (FunLike.coe.{max (succ u1) (succ (max u3 u2)), succ (max u3 u2), max (succ u1) (succ (max u3 u2))} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (a : AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) => DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) a) (AddHomClass.toFunLike.{max u1 u3 u2, max u3 u2, max u1 u3 u2} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddZeroClass.toAdd.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddZeroClass.toAdd.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHomClass.toAddHomClass.{max u1 u3 u2, max u3 u2, max u1 u3 u2} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoidHom.addMonoidHomClass.{max u3 u2, max u1 u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))))) (DirectSum.of.{u1, max u3 u2} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)) i) f)) γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.addMonoidHomClass.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (AddMonoidHom.{max (max u2 u3) u1, max (max u2 u1) u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addCommMonoid.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (fun (_x : DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) => AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) _x) (AddHomClass.toFunLike.{max (max u3 u2) u1, max (max u3 u2) u1, max (max u3 u2) u1} (AddMonoidHom.{max (max u2 u3) u1, max (max u2 u1) u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addCommMonoid.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{max (max u3 u2) u1} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddZeroClass.toAdd.{max (max u3 u2) u1} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addCommMonoid.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u2) u1, max (max u3 u2) u1, max (max u3 u2) u1} (AddMonoidHom.{max (max u2 u3) u1, max (max u2 u1) u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addCommMonoid.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addCommMonoid.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addMonoidHomClass.{max (max u3 u2) u1, max (max u3 u2) u1} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addCommMonoid.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))))) (DirectSum.fromAddMonoid.{u1, u2, u3} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) γ _inst_2) (FunLike.coe.{max (succ u1) (succ (max u3 u2)), succ (max u3 u2), max (succ u1) (succ (max u3 u2))} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (_x : AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) => DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) _x) (AddHomClass.toFunLike.{max u1 u3 u2, max u3 u2, max u1 u3 u2} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddZeroClass.toAdd.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddZeroClass.toAdd.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHomClass.toAddHomClass.{max u1 u3 u2, max u3 u2, max u1 u3 u2} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoidHom.addMonoidHomClass.{max u3 u2, max u1 u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))))) (DirectSum.of.{u1, max u3 u2} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)) i) f)) x) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (fun (_x : β i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β i) => DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _x) (AddHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toAdd.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.addMonoidHomClass.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) γ (fun (_x : γ) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : γ) => β i) _x) (AddHomClass.toFunLike.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) γ (β i) (AddZeroClass.toAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddZeroClass.toAdd.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoidHom.addMonoidHomClass.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))))) f x))
+<too large>
 Case conversion may be inaccurate. Consider using '#align direct_sum.from_add_monoid_of_apply DirectSum.fromAddMonoid_of_applyₓ'. -/
 theorem fromAddMonoid_of_apply (i : ι) (f : γ →+ β i) (x : γ) :
     fromAddMonoid (of _ i f) x = of _ i (f x) := by rw [from_add_monoid_of, AddMonoidHom.coe_comp]
@@ -353,10 +335,7 @@ end FromAddMonoid
 variable (β)
 
 /- warning: direct_sum.set_to_set -> DirectSum.setToSet is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] (β : ι -> Type.{u2}) [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] (S : Set.{u1} ι) (T : Set.{u1} ι), (HasSubset.Subset.{u1} (Set.{u1} ι) (Set.hasSubset.{u1} ι) S T) -> (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) S) (fun (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) S) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) S) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) S) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) S) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) S) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x S))))) i)) (fun (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) S) => _inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) S) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) S) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) S) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) S) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x S))))) i))) (DirectSum.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) T) (fun (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) T) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) T) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) T) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) T) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) T) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x T))))) i)) (fun (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) T) => _inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) T) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) T) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) T) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) T) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x T))))) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) S) (fun (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) S) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) S) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) S) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) S) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) S) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x S))))) i)) (fun (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) S) => _inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) S) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) S) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) S) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) S) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x S))))) i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) S) (fun (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) S) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) S) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) S) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) S) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) S) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x S))))) i)) (fun (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) S) => _inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) S) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) S) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) S) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) S) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x S))))) i))) (DirectSum.addCommMonoid.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) S) (fun (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) S) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) S) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) S) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) S) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) S) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x S))))) i)) (fun (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) S) => _inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) S) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) S) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) S) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) S) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x S))))) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) T) (fun (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) T) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) T) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) T) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) T) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) T) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x T))))) i)) (fun (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) T) => _inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) T) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) T) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) T) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) T) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x T))))) i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) T) (fun (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) T) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) T) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) T) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) T) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) T) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x T))))) i)) (fun (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) T) => _inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) T) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) T) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) T) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) T) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x T))))) i))) (DirectSum.addCommMonoid.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) T) (fun (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) T) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) T) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) T) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) T) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) T) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x T))))) i)) (fun (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) T) => _inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) T) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) T) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) T) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) T) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x T))))) i))))))
-but is expected to have type
-  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] (β : ι -> Type.{u2}) [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] (S : Set.{u1} ι) (T : Set.{u1} ι), (HasSubset.Subset.{u1} (Set.{u1} ι) (Set.instHasSubsetSet.{u1} ι) S T) -> (AddMonoidHom.{max u2 u1, max u2 u1} (DirectSum.{u1, u2} (Set.Elem.{u1} ι S) (fun (i : Set.Elem.{u1} ι S) => β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x S) i)) (fun (i : Set.Elem.{u1} ι S) => _inst_1 (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x S) i))) (DirectSum.{u1, u2} (Set.Elem.{u1} ι T) (fun (i : Set.Elem.{u1} ι T) => β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x T) i)) (fun (i : Set.Elem.{u1} ι T) => _inst_1 (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x T) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} (Set.Elem.{u1} ι S) (fun (i : Set.Elem.{u1} ι S) => β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x S) i)) (fun (i : Set.Elem.{u1} ι S) => _inst_1 (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x S) i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} (Set.Elem.{u1} ι S) (fun (i : Set.Elem.{u1} ι S) => β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x S) i)) (fun (i : Set.Elem.{u1} ι S) => _inst_1 (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x S) i))) (instAddCommMonoidDirectSum.{u1, u2} (Set.Elem.{u1} ι S) (fun (i : Set.Elem.{u1} ι S) => β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x S) i)) (fun (i : Set.Elem.{u1} ι S) => _inst_1 (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x S) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} (Set.Elem.{u1} ι T) (fun (i : Set.Elem.{u1} ι T) => β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x T) i)) (fun (i : Set.Elem.{u1} ι T) => _inst_1 (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x T) i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} (Set.Elem.{u1} ι T) (fun (i : Set.Elem.{u1} ι T) => β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x T) i)) (fun (i : Set.Elem.{u1} ι T) => _inst_1 (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x T) i))) (instAddCommMonoidDirectSum.{u1, u2} (Set.Elem.{u1} ι T) (fun (i : Set.Elem.{u1} ι T) => β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x T) i)) (fun (i : Set.Elem.{u1} ι T) => _inst_1 (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x T) i))))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align direct_sum.set_to_set DirectSum.setToSetₓ'. -/
 -- TODO: generalize this to remove the assumption `S ⊆ T`.
 /-- `set_to_set β S T h` is the natural homomorphism `⨁ (i : S), β i → ⨁ (i : T), β i`,
@@ -416,10 +395,7 @@ def equivCongrLeft (h : ι ≃ κ) : (⨁ i, β i) ≃+ ⨁ k, β (h.symm k) :=
 -/
 
 /- warning: direct_sum.equiv_congr_left_apply -> DirectSum.equivCongrLeft_apply is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] {κ : Type.{u3}} (h : Equiv.{succ u1, succ u3} ι κ) (f : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (k : κ), Eq.{succ u2} (β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (coeFn.{succ (max u3 u2), max (succ u3) (succ u2)} (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (fun (_x : DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) => forall (i : κ), β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i)) (DirectSum.hasCoeToFun.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (coeFn.{max (succ (max u1 u2)) (succ (max u3 u2)), max (succ (max u1 u2)) (succ (max u3 u2))} (AddEquiv.{max u1 u2, max u3 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (AddZeroClass.toHasAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toHasAdd.{max u3 u2} (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (DirectSum.addCommMonoid.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))))))) (fun (_x : AddEquiv.{max u1 u2, max u3 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (AddZeroClass.toHasAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toHasAdd.{max u3 u2} (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (DirectSum.addCommMonoid.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))))))) => (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) -> (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i)))) (AddEquiv.hasCoeToFun.{max u1 u2, max u3 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (AddZeroClass.toHasAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toHasAdd.{max u3 u2} (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (DirectSum.addCommMonoid.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))))))) (DirectSum.equivCongrLeft.{u1, u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) κ h) f) k) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (fun (_x : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => forall (i : ι), β i) (DirectSum.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) f (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k))
-but is expected to have type
-  forall {ι : Type.{u2}} {β : ι -> Type.{u3}} [_inst_1 : forall (i : ι), AddCommMonoid.{u3} (β i)] {κ : Type.{u1}} (h : Equiv.{succ u2, succ u1} ι κ) (f : DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (k : κ), Eq.{succ u3} ((fun (i : κ) => (fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) i) k) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (Dfinsupp.{u1, u3} κ (fun (i : κ) => (fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) i) (fun (i : κ) => (fun (i : κ) => AddMonoid.toZero.{u3} ((fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) i) ((fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i)) i))) i)) κ (fun (_x : κ) => (fun (i : κ) => (fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) i) _x) (Dfinsupp.funLike.{u1, u3} κ (fun (k : κ) => (fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) k) (fun (i : κ) => (fun (i : κ) => AddMonoid.toZero.{u3} ((fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) i) ((fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i)) i))) i)) (FunLike.coe.{max (succ (max u2 u3)) (succ (max u1 u3)), succ (max u2 u3), succ (max u1 u3)} (AddEquiv.{max u2 u3, max u1 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (instAddCommMonoidDirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))))))) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (fun (_x : DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) _x) (EmbeddingLike.toFunLike.{max (succ (max u2 u3)) (succ (max u1 u3)), succ (max u2 u3), succ (max u1 u3)} (AddEquiv.{max u2 u3, max u1 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (instAddCommMonoidDirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))))))) (DirectSum.{u2, u3} ι (fun (k : ι) => β k) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (EquivLike.toEmbeddingLike.{max (succ (max u2 u3)) (succ (max u1 u3)), succ (max u2 u3), succ (max u1 u3)} (AddEquiv.{max u2 u3, max u1 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (instAddCommMonoidDirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))))))) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (_x : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (_x : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddEquivClass.toEquivLike.{max (max u2 u3) u1 u3, max u2 u3, max u1 u3} (AddEquiv.{max u2 u3, max u1 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (instAddCommMonoidDirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))))))) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (instAddCommMonoidDirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i)))))) (AddEquiv.instAddEquivClassAddEquiv.{max u2 u3, max u1 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (instAddCommMonoidDirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i)))))))))) (DirectSum.equivCongrLeft.{u2, u3, u1} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) κ h) f) k) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (Dfinsupp.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => _inst_1 i) i))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) _x) (Dfinsupp.funLike.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => _inst_1 i) i))) i)) f (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (_x : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k))
+<too large>
 Case conversion may be inaccurate. Consider using '#align direct_sum.equiv_congr_left_apply DirectSum.equivCongrLeft_applyₓ'. -/
 @[simp]
 theorem equivCongrLeft_apply (h : ι ≃ κ) (f : ⨁ i, β i) (k : κ) :
@@ -469,10 +445,7 @@ noncomputable def sigmaCurry : (⨁ i : Σi, _, δ i.1 i.2) →+ ⨁ (i) (j), δ
 #align direct_sum.sigma_curry DirectSum.sigmaCurry
 
 /- warning: direct_sum.sigma_curry_apply -> DirectSum.sigmaCurry_apply is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} {δ : forall (i : ι), (α i) -> Type.{u3}} [_inst_3 : forall (i : ι) (j : α i), AddCommMonoid.{u3} (δ i j)] (f : DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (i : ι) (j : α i), Eq.{succ u3} (δ i j) (coeFn.{succ (max u1 u3), max (succ u1) (succ u3)} (DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (_x : DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) => forall (i_1 : α i), δ i i_1) (DirectSum.hasCoeToFun.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (coeFn.{succ (max u2 u1 u3), max (succ u2) (succ (max u1 u3))} (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (fun (_x : DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) => forall (i : ι), DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (DirectSum.hasCoeToFun.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (coeFn.{max (succ (max u2 u1 u3)) (succ (max (max u2 u1) u3)), max (succ (max (max u2 u1) u3)) (succ (max u2 u1 u3))} (AddMonoidHom.{max (max u2 u1) u3, max u2 u1 u3} (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddMonoid.toAddZeroClass.{max (max u2 u1) u3} (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (AddCommMonoid.toAddMonoid.{max (max u2 u1) u3} (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (DirectSum.addCommMonoid.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))))) (AddMonoid.toAddZeroClass.{max u2 u1 u3} (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max u2 u1 u3} (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (DirectSum.addCommMonoid.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)))))) (fun (_x : AddMonoidHom.{max (max u2 u1) u3, max u2 u1 u3} (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddMonoid.toAddZeroClass.{max (max u2 u1) u3} (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (AddCommMonoid.toAddMonoid.{max (max u2 u1) u3} (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (DirectSum.addCommMonoid.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))))) (AddMonoid.toAddZeroClass.{max u2 u1 u3} (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max u2 u1 u3} (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (DirectSum.addCommMonoid.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)))))) => (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) -> (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)))) (AddMonoidHom.hasCoeToFun.{max (max u2 u1) u3, max u2 u1 u3} (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddMonoid.toAddZeroClass.{max (max u2 u1) u3} (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (AddCommMonoid.toAddMonoid.{max (max u2 u1) u3} (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (DirectSum.addCommMonoid.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))))) (AddMonoid.toAddZeroClass.{max u2 u1 u3} (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max u2 u1 u3} (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (DirectSum.addCommMonoid.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)))))) (DirectSum.sigmaCurry.{u1, u2, u3} ι (fun (i : ι) => α i) δ _inst_3) f) i) j) (coeFn.{succ (max (max u2 u1) u3), max (succ (max u2 u1)) (succ u3)} (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (fun (_x : DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) => forall (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)), δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (DirectSum.hasCoeToFun.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) f (Sigma.mk.{u2, u1} ι (fun (i : ι) => α i) i j))
-but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} {δ : forall (i : ι), (α i) -> Type.{u3}} [_inst_3 : forall (i : ι) (j : α i), AddCommMonoid.{u3} (δ i j)] (f : DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (i : ι) (j : α i), Eq.{succ u3} ((fun (i_1 : α i) => (fun (i_1 : α i) => (fun (j : α i) => δ i j) i_1) i_1) j) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (Dfinsupp.{u1, u3} (α i) (fun (i_1 : α i) => (fun (i_1 : α i) => (fun (j : α i) => δ i j) i_1) i_1) (fun (i_1 : α i) => (fun (i_1 : α i) => AddMonoid.toZero.{u3} ((fun (i_1 : α i) => (fun (j : α i) => δ i j) i_1) i_1) (AddCommMonoid.toAddMonoid.{u3} ((fun (i_1 : α i) => (fun (j : α i) => δ i j) i_1) i_1) ((fun (i_1 : α i) => _inst_3 i i_1) i_1))) i_1)) (α i) (fun (_x : α i) => (fun (i_1 : α i) => (fun (i_1 : α i) => (fun (j : α i) => δ i j) i_1) i_1) _x) (Dfinsupp.funLike.{u1, u3} (α i) (fun (j : α i) => (fun (i_1 : α i) => (fun (j : α i) => δ i j) i_1) j) (fun (i_1 : α i) => (fun (i_1 : α i) => AddMonoid.toZero.{u3} ((fun (i_1 : α i) => (fun (j : α i) => δ i j) i_1) i_1) (AddCommMonoid.toAddMonoid.{u3} ((fun (i_1 : α i) => (fun (j : α i) => δ i j) i_1) i_1) ((fun (i_1 : α i) => _inst_3 i i_1) i_1))) i_1)) (FunLike.coe.{max (succ u2) (succ (max u1 u3)), succ u2, succ (max u1 u3)} (Dfinsupp.{u2, max u1 u3} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{max u1 u3} ((fun (i : ι) => (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i) i) (AddCommMonoid.toAddMonoid.{max u1 u3} ((fun (i : ι) => (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i) i) ((fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i) i) _x) (Dfinsupp.funLike.{u2, max u1 u3} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{max u1 u3} ((fun (i : ι) => (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i) i) (AddCommMonoid.toAddMonoid.{max u1 u3} ((fun (i : ι) => (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i) i) ((fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i))) i)) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (AddMonoidHom.{max u3 u1 u2, max (max u3 u1) u2} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (instAddCommMonoidDirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (instAddCommMonoidDirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)))))) (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (fun (_x : DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) => DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) _x) (AddHomClass.toFunLike.{max (max u3 u2) u1, max (max u3 u2) u1, max (max u3 u2) u1} (AddMonoidHom.{max u3 u1 u2, max (max u3 u1) u2} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (instAddCommMonoidDirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (instAddCommMonoidDirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)))))) (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddZeroClass.toAdd.{max (max u3 u2) u1} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (instAddCommMonoidDirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)))))) (AddZeroClass.toAdd.{max (max u3 u2) u1} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (instAddCommMonoidDirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u2) u1, max (max u3 u2) u1, max (max u3 u2) u1} (AddMonoidHom.{max u3 u1 u2, max (max u3 u1) u2} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (instAddCommMonoidDirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (instAddCommMonoidDirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)))))) (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (instAddCommMonoidDirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (instAddCommMonoidDirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))))) (AddMonoidHom.addMonoidHomClass.{max (max u3 u2) u1, max (max u3 u2) u1} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (instAddCommMonoidDirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (instAddCommMonoidDirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)))))))) (DirectSum.sigmaCurry.{u1, u2, u3} ι (fun (i : ι) => α i) δ _inst_3) f) i) j) (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (Dfinsupp.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i) i) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => AddMonoid.toZero.{u3} ((fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i) i) ((fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i))) i)) (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (_x : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i) i) _x) (Dfinsupp.funLike.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i) i) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => AddMonoid.toZero.{u3} ((fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i) i) ((fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i))) i)) f (Sigma.mk.{u2, u1} ι (fun (i : ι) => α i) i j))
+<too large>
 Case conversion may be inaccurate. Consider using '#align direct_sum.sigma_curry_apply DirectSum.sigmaCurry_applyₓ'. -/
 @[simp]
 theorem sigmaCurry_apply (f : ⨁ i : Σi, _, δ i.1 i.2) (i : ι) (j : α i) :
@@ -498,10 +471,7 @@ def sigmaUncurry [∀ i, DecidableEq (α i)] [∀ i j, DecidableEq (δ i j)] :
 #align direct_sum.sigma_uncurry DirectSum.sigmaUncurry
 
 /- warning: direct_sum.sigma_uncurry_apply -> DirectSum.sigmaUncurry_apply is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} {δ : forall (i : ι), (α i) -> Type.{u3}} [_inst_3 : forall (i : ι) (j : α i), AddCommMonoid.{u3} (δ i j)] [_inst_4 : forall (i : ι), DecidableEq.{succ u1} (α i)] [_inst_5 : forall (i : ι) (j : α i), DecidableEq.{succ u3} (δ i j)] (f : DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (i : ι) (j : α i), Eq.{succ u3} (δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) (Sigma.mk.{u2, u1} ι (fun (i : ι) => α i) i j)) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) (Sigma.mk.{u2, u1} ι (fun (i : ι) => α i) i j))) (coeFn.{succ (max (max u2 u1) u3), max (succ (max u2 u1)) (succ u3)} (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (fun (_x : DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) => forall (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)), δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (DirectSum.hasCoeToFun.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (coeFn.{max (succ (max (max u2 u1) u3)) (succ (max u2 u1 u3)), max (succ (max u2 u1 u3)) (succ (max (max u2 u1) u3))} (AddMonoidHom.{max u2 u1 u3, max (max u2 u1) u3} (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (AddMonoid.toAddZeroClass.{max u2 u1 u3} (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max u2 u1 u3} (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (DirectSum.addCommMonoid.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))))) (AddMonoid.toAddZeroClass.{max (max u2 u1) u3} (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (AddCommMonoid.toAddMonoid.{max (max u2 u1) u3} (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (DirectSum.addCommMonoid.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)))))) (fun (_x : AddMonoidHom.{max u2 u1 u3, max (max u2 u1) u3} (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (AddMonoid.toAddZeroClass.{max u2 u1 u3} (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max u2 u1 u3} (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (DirectSum.addCommMonoid.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))))) (AddMonoid.toAddZeroClass.{max (max u2 u1) u3} (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (AddCommMonoid.toAddMonoid.{max (max u2 u1) u3} (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (DirectSum.addCommMonoid.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)))))) => (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) -> (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)))) (AddMonoidHom.hasCoeToFun.{max u2 u1 u3, max (max u2 u1) u3} (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (AddMonoid.toAddZeroClass.{max u2 u1 u3} (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max u2 u1 u3} (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (DirectSum.addCommMonoid.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))))) (AddMonoid.toAddZeroClass.{max (max u2 u1) u3} (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (AddCommMonoid.toAddMonoid.{max (max u2 u1) u3} (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (DirectSum.addCommMonoid.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)))))) (DirectSum.sigmaUncurry.{u1, u2, u3} ι (fun (i : ι) => α i) (fun (i : ι) (j : α i) => δ i j) (fun (i : ι) (i_1 : α i) => _inst_3 i i_1) (fun (i : ι) (a : α i) (b : α i) => _inst_4 i a b) (fun (i : ι) (j : α i) (a : δ i j) (b : δ i j) => _inst_5 i j a b)) f) (Sigma.mk.{u2, u1} ι (fun (i : ι) => α i) i j)) (coeFn.{succ (max u1 u3), max (succ u1) (succ u3)} (DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (_x : DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) => forall (i_1 : α i), δ i i_1) (DirectSum.hasCoeToFun.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (coeFn.{succ (max u2 u1 u3), max (succ u2) (succ (max u1 u3))} (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (fun (_x : DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) => forall (i : ι), DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (DirectSum.hasCoeToFun.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) f i) j)
-but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} {δ : forall (i : ι), (α i) -> Type.{u3}} [_inst_3 : forall (i : ι) (j : α i), AddCommMonoid.{u3} (δ i j)] [_inst_4 : forall (i : ι), DecidableEq.{succ u1} (α i)] [_inst_5 : forall (i : ι) (j : α i), DecidableEq.{succ u3} (δ i j)] (f : DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (i : ι) (j : α i), Eq.{succ u3} ((fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i) i) (Sigma.mk.{u2, u1} ι (fun (_i : ι) => α _i) i j)) (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (Dfinsupp.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i) i) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => AddMonoid.toZero.{u3} ((fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i) i) ((fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i))) i)) (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (_x : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i) i) _x) (Dfinsupp.funLike.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i) i) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => AddMonoid.toZero.{u3} ((fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i) i) ((fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i))) i)) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (AddMonoidHom.{max (max u3 u1) u2, max u3 u1 u2} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (instAddCommMonoidDirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (instAddCommMonoidDirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)))))) (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (fun (_x : DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) => DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) _x) (AddHomClass.toFunLike.{max (max u3 u2) u1, max (max u3 u2) u1, max (max u3 u2) u1} (AddMonoidHom.{max (max u3 u1) u2, max u3 u1 u2} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (instAddCommMonoidDirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (instAddCommMonoidDirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)))))) (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddZeroClass.toAdd.{max (max u3 u2) u1} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (instAddCommMonoidDirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)))))) (AddZeroClass.toAdd.{max (max u3 u2) u1} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (instAddCommMonoidDirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u2) u1, max (max u3 u2) u1, max (max u3 u2) u1} (AddMonoidHom.{max (max u3 u1) u2, max u3 u1 u2} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (instAddCommMonoidDirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (instAddCommMonoidDirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)))))) (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (instAddCommMonoidDirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (instAddCommMonoidDirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))))) (AddMonoidHom.addMonoidHomClass.{max (max u3 u2) u1, max (max u3 u2) u1} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (instAddCommMonoidDirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (instAddCommMonoidDirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)))))))) (DirectSum.sigmaUncurry.{u1, u2, u3} ι (fun (i : ι) => α i) (fun (i : ι) (j : α i) => δ i j) (fun (i : ι) (i_1 : α i) => _inst_3 i i_1) (fun (i : ι) (a : α i) (b : α i) => _inst_4 i a b) (fun (i : ι) (j : α i) (a : δ i j) (b : δ i j) => _inst_5 i j a b)) f) (Sigma.mk.{u2, u1} ι (fun (i : ι) => α i) i j)) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (Dfinsupp.{u1, u3} (α i) (fun (i_1 : α i) => (fun (i_1 : α i) => (fun (j : α i) => δ i j) i_1) i_1) (fun (i_1 : α i) => (fun (i_1 : α i) => AddMonoid.toZero.{u3} ((fun (i_1 : α i) => (fun (j : α i) => δ i j) i_1) i_1) (AddCommMonoid.toAddMonoid.{u3} ((fun (i_1 : α i) => (fun (j : α i) => δ i j) i_1) i_1) ((fun (i_1 : α i) => _inst_3 i i_1) i_1))) i_1)) (α i) (fun (_x : α i) => (fun (i_1 : α i) => (fun (i_1 : α i) => (fun (j : α i) => δ i j) i_1) i_1) _x) (Dfinsupp.funLike.{u1, u3} (α i) (fun (j : α i) => (fun (i_1 : α i) => (fun (j : α i) => δ i j) i_1) j) (fun (i_1 : α i) => (fun (i_1 : α i) => AddMonoid.toZero.{u3} ((fun (i_1 : α i) => (fun (j : α i) => δ i j) i_1) i_1) (AddCommMonoid.toAddMonoid.{u3} ((fun (i_1 : α i) => (fun (j : α i) => δ i j) i_1) i_1) ((fun (i_1 : α i) => _inst_3 i i_1) i_1))) i_1)) (FunLike.coe.{max (succ u2) (succ (max u1 u3)), succ u2, succ (max u1 u3)} (Dfinsupp.{u2, max u1 u3} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{max u1 u3} ((fun (i : ι) => (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i) i) (AddCommMonoid.toAddMonoid.{max u1 u3} ((fun (i : ι) => (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i) i) ((fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i) i) _x) (Dfinsupp.funLike.{u2, max u1 u3} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{max u1 u3} ((fun (i : ι) => (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i) i) (AddCommMonoid.toAddMonoid.{max u1 u3} ((fun (i : ι) => (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i) i) ((fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i))) i)) f i) j)
+<too large>
 Case conversion may be inaccurate. Consider using '#align direct_sum.sigma_uncurry_apply DirectSum.sigmaUncurry_applyₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 @[simp]
@@ -541,10 +511,7 @@ protected def coeAddMonoidHom {M S : Type _} [DecidableEq ι] [AddCommMonoid M]
 #align direct_sum.coe_add_monoid_hom DirectSum.coeAddMonoidHom
 
 /- warning: direct_sum.coe_add_monoid_hom_of -> DirectSum.coeAddMonoidHom_of is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {M : Type.{u2}} {S : Type.{u3}} [_inst_3 : DecidableEq.{succ u1} ι] [_inst_4 : AddCommMonoid.{u2} M] [_inst_5 : SetLike.{u3, u2} S M] [_inst_6 : AddSubmonoidClass.{u3, u2} S M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4)) _inst_5] (A : ι -> S) (i : ι) (x : coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)), Eq.{succ u2} M (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u2)} (AddMonoidHom.{max u1 u2, u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))) M (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))))) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4))) (fun (_x : AddMonoidHom.{max u1 u2, u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))) M (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))))) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4))) => (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))) -> M) (AddMonoidHom.hasCoeToFun.{max u1 u2, u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))) M (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))))) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4))) (DirectSum.coeAddMonoidHom.{u1, u2, u3} ι M S (fun (a : ι) (b : ι) => _inst_3 a b) _inst_4 _inst_5 _inst_6 A) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) i) (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i)) i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) i) ((fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i)) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i)) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i)) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i)) i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) i) (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i)) i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) i) ((fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i)) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i)) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i)) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i)) i))))) => (coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) -> (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i)) i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) i) (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i)) i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) i) ((fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i)) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i)) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i)) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i)) i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_3 a b) (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i)) i) x)) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) M (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) M (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) M (coeBase.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) M (coeSubtype.{succ u2} M (fun (x : M) => Membership.Mem.{u2, u3} M S (SetLike.hasMem.{u3, u2} S M _inst_5) x (A i)))))) x)
-but is expected to have type
-  forall {ι : Type.{u3}} {M : Type.{u2}} {S : Type.{u1}} [_inst_3 : DecidableEq.{succ u3} ι] [_inst_4 : AddCommMonoid.{u2} M] [_inst_5 : SetLike.{u1, u2} S M] [_inst_6 : AddSubmonoidClass.{u1, u2} S M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4)) _inst_5] (A : ι -> S) (i : ι) (x : Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) => M) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (AddMonoidHom.{u2, max u2 u3} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))))) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (a : Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) a) (AddHomClass.toFunLike.{max u3 u2, u2, max u3 u2} (AddMonoidHom.{u2, max u2 u3} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))))) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddZeroClass.toAdd.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))))) (AddZeroClass.toAdd.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u2, max u3 u2} (AddMonoidHom.{u2, max u2 u3} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))))) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))))) (AddMonoidHom.addMonoidHomClass.{u2, max u3 u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))))))) (DirectSum.of.{u3, u2} ι (fun (a : ι) (b : ι) => _inst_3 a b) (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)) i) x)) (FunLike.coe.{max (succ u3) (succ u2), max (succ u3) (succ u2), succ u2} (AddMonoidHom.{max u2 u3, u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) M (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))))) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (fun (_x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) => M) _x) (AddHomClass.toFunLike.{max u3 u2, max u3 u2, u2} (AddMonoidHom.{max u2 u3, u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) M (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))))) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) M (AddZeroClass.toAdd.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))))) (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, max u3 u2, u2} (AddMonoidHom.{max u2 u3, u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) M (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))))) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) M (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))))) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4)) (AddMonoidHom.addMonoidHomClass.{max u3 u2, u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) M (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))))) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4))))) (DirectSum.coeAddMonoidHom.{u3, u2, u1} ι M S (fun (a : ι) (b : ι) => _inst_3 a b) _inst_4 _inst_5 _inst_6 A) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (AddMonoidHom.{u2, max u2 u3} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))))) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (_x : Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) _x) (AddHomClass.toFunLike.{max u3 u2, u2, max u3 u2} (AddMonoidHom.{u2, max u2 u3} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))))) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddZeroClass.toAdd.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))))) (AddZeroClass.toAdd.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u2, max u3 u2} (AddMonoidHom.{u2, max u2 u3} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))))) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))))) (AddMonoidHom.addMonoidHomClass.{u2, max u3 u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))))))) (DirectSum.of.{u3, u2} ι (fun (a : ι) (b : ι) => _inst_3 a b) (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)) i) x)) (Subtype.val.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Set.{u2} M) (Set.instMembershipSet.{u2} M) x (SetLike.coe.{u1, u2} S M _inst_5 (A i))) x)
+<too large>
 Case conversion may be inaccurate. Consider using '#align direct_sum.coe_add_monoid_hom_of DirectSum.coeAddMonoidHom_ofₓ'. -/
 @[simp]
 theorem coeAddMonoidHom_of {M S : Type _} [DecidableEq ι] [AddCommMonoid M] [SetLike S M]
@@ -554,10 +521,7 @@ theorem coeAddMonoidHom_of {M S : Type _} [DecidableEq ι] [AddCommMonoid M] [Se
 #align direct_sum.coe_add_monoid_hom_of DirectSum.coeAddMonoidHom_of
 
 /- warning: direct_sum.coe_of_apply -> DirectSum.coe_of_apply is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {M : Type.{u2}} {S : Type.{u3}} [_inst_3 : DecidableEq.{succ u1} ι] [_inst_4 : AddCommMonoid.{u2} M] [_inst_5 : SetLike.{u3, u2} S M] [_inst_6 : AddSubmonoidClass.{u3, u2} S M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4)) _inst_5] {A : ι -> S} (i : ι) (j : ι) (x : coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)), Eq.{succ u2} M ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A j)) M (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A j)) M (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A j)) M (coeBase.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A j)) M (coeSubtype.{succ u2} M (fun (x : M) => Membership.Mem.{u2, u3} M S (SetLike.hasMem.{u3, u2} S M _inst_5) x (A j)))))) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))) (fun (_x : DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))) => forall (i : ι), coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (DirectSum.hasCoeToFun.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{u2} (coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (AddCommMonoid.toAddMonoid.{u2} (coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i)))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{u2} (coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (AddCommMonoid.toAddMonoid.{u2} (coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i)))))) => (coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{u2} (coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (AddCommMonoid.toAddMonoid.{u2} (coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i)))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_3 a b) (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i)) i) x) j)) (ite.{succ u2} M (Eq.{succ u1} ι i j) (_inst_3 i j) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) M (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) M (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) M (coeBase.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) M (coeSubtype.{succ u2} M (fun (x : M) => Membership.Mem.{u2, u3} M S (SetLike.hasMem.{u3, u2} S M _inst_5) x (A i)))))) x) (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4)))))))
-but is expected to have type
-  forall {ι : Type.{u3}} {M : Type.{u2}} {S : Type.{u1}} [_inst_3 : DecidableEq.{succ u3} ι] [_inst_4 : AddCommMonoid.{u2} M] [_inst_5 : SetLike.{u1, u2} S M] [_inst_6 : AddSubmonoidClass.{u1, u2} S M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4)) _inst_5] {A : ι -> S} (i : ι) (j : ι) (x : Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))), Eq.{succ u2} M (Subtype.val.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Set.{u2} M) (Set.instMembershipSet.{u2} M) x (SetLike.coe.{u1, u2} S M _inst_5 (A j))) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (Dfinsupp.{u3, u2} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) i) i) ((fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)) i))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) i) i) _x) (Dfinsupp.funLike.{u3, u2} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) i) i) ((fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)) i))) i)) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (AddMonoidHom.{u2, max u2 u3} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))))) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (_x : Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) _x) (AddHomClass.toFunLike.{max u3 u2, u2, max u3 u2} (AddMonoidHom.{u2, max u2 u3} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))))) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddZeroClass.toAdd.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))))) (AddZeroClass.toAdd.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u2, max u3 u2} (AddMonoidHom.{u2, max u2 u3} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))))) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))))) (AddMonoidHom.addMonoidHomClass.{u2, max u3 u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))))))) (DirectSum.of.{u3, u2} ι (fun (a : ι) (b : ι) => _inst_3 a b) (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)) i) x) j)) (Subtype.val.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Set.{u2} M) (Set.instMembershipSet.{u2} M) x (SetLike.coe.{u1, u2} S M _inst_5 (A i))) (ite.{succ u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (Eq.{succ u3} ι i j) (_inst_3 i j) x (OfNat.ofNat.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) 0 (Zero.toOfNat0.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (ZeroMemClass.zero.{u1, u2} S M _inst_5 (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4)) (AddSubmonoidClass.toZeroMemClass.{u1, u2} S M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4)) _inst_5 _inst_6) (A i))))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align direct_sum.coe_of_apply DirectSum.coe_of_applyₓ'. -/
 theorem coe_of_apply {M S : Type _} [DecidableEq ι] [AddCommMonoid M] [SetLike S M]
     [AddSubmonoidClass S M] {A : ι → S} (i j : ι) (x : A i) :
Diff
@@ -419,7 +419,7 @@ def equivCongrLeft (h : ι ≃ κ) : (⨁ i, β i) ≃+ ⨁ k, β (h.symm k) :=
 lean 3 declaration is
   forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] {κ : Type.{u3}} (h : Equiv.{succ u1, succ u3} ι κ) (f : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (k : κ), Eq.{succ u2} (β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (coeFn.{succ (max u3 u2), max (succ u3) (succ u2)} (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (fun (_x : DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) => forall (i : κ), β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i)) (DirectSum.hasCoeToFun.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (coeFn.{max (succ (max u1 u2)) (succ (max u3 u2)), max (succ (max u1 u2)) (succ (max u3 u2))} (AddEquiv.{max u1 u2, max u3 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (AddZeroClass.toHasAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toHasAdd.{max u3 u2} (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (DirectSum.addCommMonoid.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))))))) (fun (_x : AddEquiv.{max u1 u2, max u3 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (AddZeroClass.toHasAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toHasAdd.{max u3 u2} (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (DirectSum.addCommMonoid.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))))))) => (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) -> (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i)))) (AddEquiv.hasCoeToFun.{max u1 u2, max u3 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (AddZeroClass.toHasAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toHasAdd.{max u3 u2} (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (DirectSum.addCommMonoid.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))))))) (DirectSum.equivCongrLeft.{u1, u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) κ h) f) k) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (fun (_x : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => forall (i : ι), β i) (DirectSum.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) f (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k))
 but is expected to have type
-  forall {ι : Type.{u2}} {β : ι -> Type.{u3}} [_inst_1 : forall (i : ι), AddCommMonoid.{u3} (β i)] {κ : Type.{u1}} (h : Equiv.{succ u2, succ u1} ι κ) (f : DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (k : κ), Eq.{succ u3} ((fun (i : κ) => (fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) i) k) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (Dfinsupp.{u1, u3} κ (fun (i : κ) => (fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) i) (fun (i : κ) => (fun (i : κ) => AddMonoid.toZero.{u3} ((fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) i) ((fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i)) i))) i)) κ (fun (_x : κ) => (fun (i : κ) => (fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) i) _x) (Dfinsupp.funLike.{u1, u3} κ (fun (k : κ) => (fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) k) (fun (i : κ) => (fun (i : κ) => AddMonoid.toZero.{u3} ((fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) i) ((fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i)) i))) i)) (FunLike.coe.{max (succ (max u2 u3)) (succ (max u1 u3)), succ (max u2 u3), succ (max u1 u3)} (AddEquiv.{max u2 u3, max u1 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (instAddCommMonoidDirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))))))) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (fun (_x : DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) _x) (EmbeddingLike.toFunLike.{max (succ (max u2 u3)) (succ (max u1 u3)), succ (max u2 u3), succ (max u1 u3)} (AddEquiv.{max u2 u3, max u1 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (instAddCommMonoidDirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))))))) (DirectSum.{u2, u3} ι (fun (k : ι) => β k) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (EquivLike.toEmbeddingLike.{max (succ (max u2 u3)) (succ (max u1 u3)), succ (max u2 u3), succ (max u1 u3)} (AddEquiv.{max u2 u3, max u1 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (instAddCommMonoidDirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))))))) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (_x : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (_x : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddEquivClass.toEquivLike.{max (max u2 u3) u1 u3, max u2 u3, max u1 u3} (AddEquiv.{max u2 u3, max u1 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (instAddCommMonoidDirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))))))) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (instAddCommMonoidDirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i)))))) (AddEquiv.instAddEquivClassAddEquiv.{max u2 u3, max u1 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (instAddCommMonoidDirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i)))))))))) (DirectSum.equivCongrLeft.{u2, u3, u1} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) κ h) f) k) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (Dfinsupp.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => _inst_1 i) i))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) _x) (Dfinsupp.funLike.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => _inst_1 i) i))) i)) f (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (_x : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k))
+  forall {ι : Type.{u2}} {β : ι -> Type.{u3}} [_inst_1 : forall (i : ι), AddCommMonoid.{u3} (β i)] {κ : Type.{u1}} (h : Equiv.{succ u2, succ u1} ι κ) (f : DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (k : κ), Eq.{succ u3} ((fun (i : κ) => (fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) i) k) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (Dfinsupp.{u1, u3} κ (fun (i : κ) => (fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) i) (fun (i : κ) => (fun (i : κ) => AddMonoid.toZero.{u3} ((fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) i) ((fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i)) i))) i)) κ (fun (_x : κ) => (fun (i : κ) => (fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) i) _x) (Dfinsupp.funLike.{u1, u3} κ (fun (k : κ) => (fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) k) (fun (i : κ) => (fun (i : κ) => AddMonoid.toZero.{u3} ((fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) i) ((fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i)) i))) i)) (FunLike.coe.{max (succ (max u2 u3)) (succ (max u1 u3)), succ (max u2 u3), succ (max u1 u3)} (AddEquiv.{max u2 u3, max u1 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (instAddCommMonoidDirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))))))) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (fun (_x : DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) _x) (EmbeddingLike.toFunLike.{max (succ (max u2 u3)) (succ (max u1 u3)), succ (max u2 u3), succ (max u1 u3)} (AddEquiv.{max u2 u3, max u1 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (instAddCommMonoidDirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))))))) (DirectSum.{u2, u3} ι (fun (k : ι) => β k) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (EquivLike.toEmbeddingLike.{max (succ (max u2 u3)) (succ (max u1 u3)), succ (max u2 u3), succ (max u1 u3)} (AddEquiv.{max u2 u3, max u1 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (instAddCommMonoidDirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))))))) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (_x : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (_x : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddEquivClass.toEquivLike.{max (max u2 u3) u1 u3, max u2 u3, max u1 u3} (AddEquiv.{max u2 u3, max u1 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (instAddCommMonoidDirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))))))) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (instAddCommMonoidDirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i)))))) (AddEquiv.instAddEquivClassAddEquiv.{max u2 u3, max u1 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (instAddCommMonoidDirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i)))))))))) (DirectSum.equivCongrLeft.{u2, u3, u1} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) κ h) f) k) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (Dfinsupp.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => _inst_1 i) i))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) _x) (Dfinsupp.funLike.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => _inst_1 i) i))) i)) f (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (_x : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : κ) => ι) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k))
 Case conversion may be inaccurate. Consider using '#align direct_sum.equiv_congr_left_apply DirectSum.equivCongrLeft_applyₓ'. -/
 @[simp]
 theorem equivCongrLeft_apply (h : ι ≃ κ) (f : ⨁ i, β i) (k : κ) :
Diff
@@ -419,7 +419,7 @@ def equivCongrLeft (h : ι ≃ κ) : (⨁ i, β i) ≃+ ⨁ k, β (h.symm k) :=
 lean 3 declaration is
   forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] {κ : Type.{u3}} (h : Equiv.{succ u1, succ u3} ι κ) (f : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (k : κ), Eq.{succ u2} (β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (coeFn.{succ (max u3 u2), max (succ u3) (succ u2)} (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (fun (_x : DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) => forall (i : κ), β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i)) (DirectSum.hasCoeToFun.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (coeFn.{max (succ (max u1 u2)) (succ (max u3 u2)), max (succ (max u1 u2)) (succ (max u3 u2))} (AddEquiv.{max u1 u2, max u3 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (AddZeroClass.toHasAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toHasAdd.{max u3 u2} (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (DirectSum.addCommMonoid.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))))))) (fun (_x : AddEquiv.{max u1 u2, max u3 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (AddZeroClass.toHasAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toHasAdd.{max u3 u2} (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (DirectSum.addCommMonoid.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))))))) => (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) -> (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i)))) (AddEquiv.hasCoeToFun.{max u1 u2, max u3 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (AddZeroClass.toHasAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toHasAdd.{max u3 u2} (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (DirectSum.addCommMonoid.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))))))) (DirectSum.equivCongrLeft.{u1, u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) κ h) f) k) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (fun (_x : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => forall (i : ι), β i) (DirectSum.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) f (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k))
 but is expected to have type
-  forall {ι : Type.{u2}} {β : ι -> Type.{u3}} [_inst_1 : forall (i : ι), AddCommMonoid.{u3} (β i)] {κ : Type.{u1}} (h : Equiv.{succ u2, succ u1} ι κ) (f : DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (k : κ), Eq.{succ u3} ((fun (i : κ) => (fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) i) k) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (Dfinsupp.{u1, u3} κ (fun (i : κ) => (fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) i) (fun (i : κ) => (fun (i : κ) => AddMonoid.toZero.{u3} ((fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) i) ((fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i)) i))) i)) κ (fun (_x : κ) => (fun (i : κ) => (fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) i) _x) (Dfinsupp.funLike.{u1, u3} κ (fun (k : κ) => (fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) k) (fun (i : κ) => (fun (i : κ) => AddMonoid.toZero.{u3} ((fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) i) ((fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i)) i))) i)) (FunLike.coe.{max (max (succ u2) (succ u1)) (succ u3), max (succ u2) (succ u3), max (succ u1) (succ u3)} (AddEquiv.{max u3 u2, max u3 u1} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (instAddCommMonoidDirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))))))) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (fun (_x : DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) _x) (EmbeddingLike.toFunLike.{max (max (succ u2) (succ u1)) (succ u3), max (succ u2) (succ u3), max (succ u1) (succ u3)} (AddEquiv.{max u3 u2, max u3 u1} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (instAddCommMonoidDirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))))))) (DirectSum.{u2, u3} ι (fun (k : ι) => β k) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (EquivLike.toEmbeddingLike.{max (max (succ u2) (succ u1)) (succ u3), max (succ u2) (succ u3), max (succ u1) (succ u3)} (AddEquiv.{max u3 u2, max u3 u1} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (instAddCommMonoidDirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))))))) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (_x : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (_x : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddEquivClass.toEquivLike.{max (max u2 u1) u3, max u2 u3, max u1 u3} (AddEquiv.{max u3 u2, max u3 u1} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (instAddCommMonoidDirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))))))) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (instAddCommMonoidDirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i)))))) (AddEquiv.instAddEquivClassAddEquiv.{max u2 u3, max u1 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (instAddCommMonoidDirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i)))))))))) (DirectSum.equivCongrLeft.{u2, u3, u1} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) κ h) f) k) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (Dfinsupp.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => _inst_1 i) i))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) _x) (Dfinsupp.funLike.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => _inst_1 i) i))) i)) f (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (_x : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k))
+  forall {ι : Type.{u2}} {β : ι -> Type.{u3}} [_inst_1 : forall (i : ι), AddCommMonoid.{u3} (β i)] {κ : Type.{u1}} (h : Equiv.{succ u2, succ u1} ι κ) (f : DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (k : κ), Eq.{succ u3} ((fun (i : κ) => (fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) i) k) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (Dfinsupp.{u1, u3} κ (fun (i : κ) => (fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) i) (fun (i : κ) => (fun (i : κ) => AddMonoid.toZero.{u3} ((fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) i) ((fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i)) i))) i)) κ (fun (_x : κ) => (fun (i : κ) => (fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) i) _x) (Dfinsupp.funLike.{u1, u3} κ (fun (k : κ) => (fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) k) (fun (i : κ) => (fun (i : κ) => AddMonoid.toZero.{u3} ((fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) i) ((fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i)) i))) i)) (FunLike.coe.{max (succ (max u2 u3)) (succ (max u1 u3)), succ (max u2 u3), succ (max u1 u3)} (AddEquiv.{max u2 u3, max u1 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (instAddCommMonoidDirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))))))) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (fun (_x : DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) _x) (EmbeddingLike.toFunLike.{max (succ (max u2 u3)) (succ (max u1 u3)), succ (max u2 u3), succ (max u1 u3)} (AddEquiv.{max u2 u3, max u1 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (instAddCommMonoidDirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))))))) (DirectSum.{u2, u3} ι (fun (k : ι) => β k) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (EquivLike.toEmbeddingLike.{max (succ (max u2 u3)) (succ (max u1 u3)), succ (max u2 u3), succ (max u1 u3)} (AddEquiv.{max u2 u3, max u1 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (instAddCommMonoidDirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))))))) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (_x : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (_x : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddEquivClass.toEquivLike.{max (max u2 u3) u1 u3, max u2 u3, max u1 u3} (AddEquiv.{max u2 u3, max u1 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (instAddCommMonoidDirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))))))) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (instAddCommMonoidDirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i)))))) (AddEquiv.instAddEquivClassAddEquiv.{max u2 u3, max u1 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (instAddCommMonoidDirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i)))))))))) (DirectSum.equivCongrLeft.{u2, u3, u1} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) κ h) f) k) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (Dfinsupp.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => _inst_1 i) i))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) _x) (Dfinsupp.funLike.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => _inst_1 i) i))) i)) f (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (_x : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k))
 Case conversion may be inaccurate. Consider using '#align direct_sum.equiv_congr_left_apply DirectSum.equivCongrLeft_applyₓ'. -/
 @[simp]
 theorem equivCongrLeft_apply (h : ι ≃ κ) (f : ⨁ i, β i) (k : κ) :
Diff
@@ -581,18 +581,18 @@ def IsInternal {M S : Type _} [DecidableEq ι] [AddCommMonoid M] [SetLike S M]
 #align direct_sum.is_internal DirectSum.IsInternal
 -/
 
-/- warning: direct_sum.is_internal.add_submonoid_supr_eq_top -> DirectSum.IsInternal.addSubmonoid_supᵢ_eq_top is a dubious translation:
+/- warning: direct_sum.is_internal.add_submonoid_supr_eq_top -> DirectSum.IsInternal.addSubmonoid_iSup_eq_top is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_3 : DecidableEq.{succ u1} ι] [_inst_4 : AddCommMonoid.{u2} M] (A : ι -> (AddSubmonoid.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4)))), (DirectSum.IsInternal.{u1, u2, u2} ι M (AddSubmonoid.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4))) (fun (a : ι) (b : ι) => _inst_3 a b) _inst_4 (AddSubmonoid.setLike.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4))) (AddSubmonoid.add_submonoidClass.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4))) A) -> (Eq.{succ u2} (AddSubmonoid.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4))) (supᵢ.{u2, succ u1} (AddSubmonoid.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4))) (CompleteSemilatticeSup.toHasSup.{u2} (AddSubmonoid.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4))) (CompleteLattice.toCompleteSemilatticeSup.{u2} (AddSubmonoid.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4))) (AddSubmonoid.completeLattice.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4))))) ι A) (Top.top.{u2} (AddSubmonoid.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4))) (AddSubmonoid.hasTop.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4)))))
+  forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_3 : DecidableEq.{succ u1} ι] [_inst_4 : AddCommMonoid.{u2} M] (A : ι -> (AddSubmonoid.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4)))), (DirectSum.IsInternal.{u1, u2, u2} ι M (AddSubmonoid.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4))) (fun (a : ι) (b : ι) => _inst_3 a b) _inst_4 (AddSubmonoid.setLike.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4))) (AddSubmonoid.add_submonoidClass.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4))) A) -> (Eq.{succ u2} (AddSubmonoid.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4))) (iSup.{u2, succ u1} (AddSubmonoid.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4))) (CompleteSemilatticeSup.toHasSup.{u2} (AddSubmonoid.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4))) (CompleteLattice.toCompleteSemilatticeSup.{u2} (AddSubmonoid.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4))) (AddSubmonoid.completeLattice.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4))))) ι A) (Top.top.{u2} (AddSubmonoid.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4))) (AddSubmonoid.hasTop.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4)))))
 but is expected to have type
-  forall {ι : Type.{u2}} {M : Type.{u1}} [_inst_3 : DecidableEq.{succ u2} ι] [_inst_4 : AddCommMonoid.{u1} M] (A : ι -> (AddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_4)))), (DirectSum.IsInternal.{u2, u1, u1} ι M (AddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_4))) (fun (a : ι) (b : ι) => _inst_3 a b) _inst_4 (AddSubmonoid.instSetLikeAddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_4))) (AddSubmonoid.instAddSubmonoidClassAddSubmonoidInstSetLikeAddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_4))) A) -> (Eq.{succ u1} (AddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_4))) (supᵢ.{u1, succ u2} (AddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_4))) (CompleteLattice.toSupSet.{u1} (AddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_4))) (AddSubmonoid.instCompleteLatticeAddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_4)))) ι A) (Top.top.{u1} (AddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_4))) (AddSubmonoid.instTopAddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_4)))))
-Case conversion may be inaccurate. Consider using '#align direct_sum.is_internal.add_submonoid_supr_eq_top DirectSum.IsInternal.addSubmonoid_supᵢ_eq_topₓ'. -/
-theorem IsInternal.addSubmonoid_supᵢ_eq_top {M : Type _} [DecidableEq ι] [AddCommMonoid M]
-    (A : ι → AddSubmonoid M) (h : IsInternal A) : supᵢ A = ⊤ :=
+  forall {ι : Type.{u2}} {M : Type.{u1}} [_inst_3 : DecidableEq.{succ u2} ι] [_inst_4 : AddCommMonoid.{u1} M] (A : ι -> (AddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_4)))), (DirectSum.IsInternal.{u2, u1, u1} ι M (AddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_4))) (fun (a : ι) (b : ι) => _inst_3 a b) _inst_4 (AddSubmonoid.instSetLikeAddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_4))) (AddSubmonoid.instAddSubmonoidClassAddSubmonoidInstSetLikeAddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_4))) A) -> (Eq.{succ u1} (AddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_4))) (iSup.{u1, succ u2} (AddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_4))) (CompleteLattice.toSupSet.{u1} (AddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_4))) (AddSubmonoid.instCompleteLatticeAddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_4)))) ι A) (Top.top.{u1} (AddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_4))) (AddSubmonoid.instTopAddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_4)))))
+Case conversion may be inaccurate. Consider using '#align direct_sum.is_internal.add_submonoid_supr_eq_top DirectSum.IsInternal.addSubmonoid_iSup_eq_topₓ'. -/
+theorem IsInternal.addSubmonoid_iSup_eq_top {M : Type _} [DecidableEq ι] [AddCommMonoid M]
+    (A : ι → AddSubmonoid M) (h : IsInternal A) : iSup A = ⊤ :=
   by
-  rw [AddSubmonoid.supᵢ_eq_mrange_dfinsupp_sumAddHom, AddMonoidHom.mrange_top_iff_surjective]
+  rw [AddSubmonoid.iSup_eq_mrange_dfinsupp_sumAddHom, AddMonoidHom.mrange_top_iff_surjective]
   exact Function.Bijective.surjective h
-#align direct_sum.is_internal.add_submonoid_supr_eq_top DirectSum.IsInternal.addSubmonoid_supᵢ_eq_top
+#align direct_sum.is_internal.add_submonoid_supr_eq_top DirectSum.IsInternal.addSubmonoid_iSup_eq_top
 
 end DirectSum
 
Diff
@@ -137,7 +137,7 @@ def of (i : ι) : β i →+ ⨁ i, β i :=
 lean 3 declaration is
   forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] (β : ι -> Type.{u2}) [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] (i : ι) (x : β i), Eq.{succ u2} (β i) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (fun (_x : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => forall (i : ι), β i) (DirectSum.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) => (β i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) i) x) i) x
 but is expected to have type
-  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] (β : ι -> Type.{u2}) [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] (i : ι) (x : β i), Eq.{succ u2} ((fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) i) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => _inst_1 i) i))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) _x) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => _inst_1 i) i))) i)) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (fun (_x : β i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : β i) => DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _x) (AddHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toAdd.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.addMonoidHomClass.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i) x) i) x
+  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] (β : ι -> Type.{u2}) [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] (i : ι) (x : β i), Eq.{succ u2} ((fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) i) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => _inst_1 i) i))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) _x) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => _inst_1 i) i))) i)) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (fun (_x : β i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β i) => DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _x) (AddHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toAdd.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.addMonoidHomClass.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i) x) i) x
 Case conversion may be inaccurate. Consider using '#align direct_sum.of_eq_same DirectSum.of_eq_sameₓ'. -/
 @[simp]
 theorem of_eq_same (i : ι) (x : β i) : (of _ i x) i = x :=
@@ -148,7 +148,7 @@ theorem of_eq_same (i : ι) (x : β i) : (of _ i x) i = x :=
 lean 3 declaration is
   forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] (β : ι -> Type.{u2}) [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] (i : ι) (j : ι) (x : β i), (Ne.{succ u1} ι i j) -> (Eq.{succ u2} (β j) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (fun (_x : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => forall (i : ι), β i) (DirectSum.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) => (β i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) i) x) j) (OfNat.ofNat.{u2} (β j) 0 (OfNat.mk.{u2} (β j) 0 (Zero.zero.{u2} (β j) (AddZeroClass.toHasZero.{u2} (β j) (AddMonoid.toAddZeroClass.{u2} (β j) (AddCommMonoid.toAddMonoid.{u2} (β j) (_inst_1 j))))))))
 but is expected to have type
-  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] (β : ι -> Type.{u2}) [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] (i : ι) (j : ι) (x : β i), (Ne.{succ u1} ι i j) -> (Eq.{succ u2} ((fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) j) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => _inst_1 i) i))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) _x) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => _inst_1 i) i))) i)) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (fun (_x : β i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : β i) => DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _x) (AddHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toAdd.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.addMonoidHomClass.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i) x) j) (OfNat.ofNat.{u2} ((fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) j) 0 (Zero.toOfNat0.{u2} ((fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) j) (AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) j) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) j) (_inst_1 j))))))
+  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] (β : ι -> Type.{u2}) [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] (i : ι) (j : ι) (x : β i), (Ne.{succ u1} ι i j) -> (Eq.{succ u2} ((fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) j) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => _inst_1 i) i))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) _x) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => _inst_1 i) i))) i)) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (fun (_x : β i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β i) => DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _x) (AddHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toAdd.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.addMonoidHomClass.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i) x) j) (OfNat.ofNat.{u2} ((fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) j) 0 (Zero.toOfNat0.{u2} ((fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) j) (AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) j) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) j) (_inst_1 j))))))
 Case conversion may be inaccurate. Consider using '#align direct_sum.of_eq_of_ne DirectSum.of_eq_of_neₓ'. -/
 theorem of_eq_of_ne (i j : ι) (x : β i) (h : i ≠ j) : (of _ i x) j = 0 :=
   Dfinsupp.single_eq_of_ne h
@@ -169,7 +169,7 @@ theorem support_zero [∀ (i : ι) (x : β i), Decidable (x ≠ 0)] : (0 : ⨁ i
 lean 3 declaration is
   forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] (β : ι -> Type.{u2}) [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))))))] (i : ι) (x : β i), (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))))))) -> (Eq.{succ u1} (Finset.{u1} ι) (Dfinsupp.support.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_1 i) i)))) (fun (i : ι) (x : β i) => _inst_2 i x) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) => (β i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) i) x)) (Singleton.singleton.{u1, u1} ι (Finset.{u1} ι) (Finset.hasSingleton.{u1} ι) i))
 but is expected to have type
-  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] (β : ι -> Type.{u2}) [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (Zero.toOfNat0.{u2} (β i) (AddMonoid.toZero.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))))] (i : ι) (x : β i), (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (Zero.toOfNat0.{u2} (β i) (AddMonoid.toZero.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))))) -> (Eq.{succ u1} (Finset.{u1} ι) (Dfinsupp.support.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => _inst_1 i) i))) (fun (i : ι) (x : β i) => _inst_2 i x) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (fun (_x : β i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : β i) => DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _x) (AddHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toAdd.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.addMonoidHomClass.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i) x)) (Singleton.singleton.{u1, u1} ι (Finset.{u1} ι) (Finset.instSingletonFinset.{u1} ι) i))
+  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] (β : ι -> Type.{u2}) [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (Zero.toOfNat0.{u2} (β i) (AddMonoid.toZero.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))))] (i : ι) (x : β i), (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (Zero.toOfNat0.{u2} (β i) (AddMonoid.toZero.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))))) -> (Eq.{succ u1} (Finset.{u1} ι) (Dfinsupp.support.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => _inst_1 i) i))) (fun (i : ι) (x : β i) => _inst_2 i x) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (fun (_x : β i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β i) => DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _x) (AddHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toAdd.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.addMonoidHomClass.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i) x)) (Singleton.singleton.{u1, u1} ι (Finset.{u1} ι) (Finset.instSingletonFinset.{u1} ι) i))
 Case conversion may be inaccurate. Consider using '#align direct_sum.support_of DirectSum.support_ofₓ'. -/
 @[simp]
 theorem support_of [∀ (i : ι) (x : β i), Decidable (x ≠ 0)] (i : ι) (x : β i) (h : x ≠ 0) :
@@ -181,7 +181,7 @@ theorem support_of [∀ (i : ι) (x : β i), Decidable (x ≠ 0)] (i : ι) (x :
 lean 3 declaration is
   forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] (β : ι -> Type.{u2}) [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))))))] {i : ι} {b : β i}, HasSubset.Subset.{u1} (Finset.{u1} ι) (Finset.hasSubset.{u1} ι) (Dfinsupp.support.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_1 i) i)))) (fun (i : ι) (x : β i) => _inst_2 i x) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) => (β i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun {i : ι} => β i) (fun (i : ι) => _inst_1 i) i) b)) (Singleton.singleton.{u1, u1} ι (Finset.{u1} ι) (Finset.hasSingleton.{u1} ι) i)
 but is expected to have type
-  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] (β : ι -> Type.{u2}) [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (Zero.toOfNat0.{u2} (β i) (AddMonoid.toZero.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))))] {i : ι} {b : β i}, HasSubset.Subset.{u1} (Finset.{u1} ι) (Finset.instHasSubsetFinset.{u1} ι) (Dfinsupp.support.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => _inst_1 i) i))) (fun (i : ι) (x : β i) => _inst_2 i x) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (fun (_x : β i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : β i) => DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _x) (AddHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toAdd.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.addMonoidHomClass.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i) b)) (Singleton.singleton.{u1, u1} ι (Finset.{u1} ι) (Finset.instSingletonFinset.{u1} ι) i)
+  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] (β : ι -> Type.{u2}) [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (Zero.toOfNat0.{u2} (β i) (AddMonoid.toZero.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))))] {i : ι} {b : β i}, HasSubset.Subset.{u1} (Finset.{u1} ι) (Finset.instHasSubsetFinset.{u1} ι) (Dfinsupp.support.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => _inst_1 i) i))) (fun (i : ι) (x : β i) => _inst_2 i x) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (fun (_x : β i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β i) => DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _x) (AddHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toAdd.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.addMonoidHomClass.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i) b)) (Singleton.singleton.{u1, u1} ι (Finset.{u1} ι) (Finset.instSingletonFinset.{u1} ι) i)
 Case conversion may be inaccurate. Consider using '#align direct_sum.support_of_subset DirectSum.support_of_subsetₓ'. -/
 theorem support_of_subset [∀ (i : ι) (x : β i), Decidable (x ≠ 0)] {i : ι} {b : β i} :
     (of _ i b).support ⊆ {i} :=
@@ -192,7 +192,7 @@ theorem support_of_subset [∀ (i : ι) (x : β i), Decidable (x ≠ 0)] {i : ι
 lean 3 declaration is
   forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] (β : ι -> Type.{u2}) [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))))))] (x : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)), Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (Finset.sum.{max u1 u2, u1} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) ι (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (Dfinsupp.support.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_1 i) i)))) (fun (i : ι) (x : β i) => _inst_2 i x) x) (fun (i : ι) => coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) ((fun (i : ι) => _inst_1 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) ((fun (i : ι) => _inst_1 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i))))) => (β i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) ((fun (i : ι) => _inst_1 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (fun (_x : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => forall (i : ι), β i) (DirectSum.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) x i))) x
 but is expected to have type
-  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] (β : ι -> Type.{u2}) [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (Zero.toOfNat0.{u2} (β i) (AddMonoid.toZero.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))))] (x : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)), Eq.{max (succ u1) (succ u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Finset.sum.{max u1 u2, u1} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) ι (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Dfinsupp.support.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => _inst_1 i) i))) (fun (i : ι) (x : β i) => _inst_2 i x) x) (fun (i : ι) => FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (fun (_x : β i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : β i) => DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _x) (AddHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toAdd.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.addMonoidHomClass.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => _inst_1 i) i))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) _x) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => _inst_1 i) i))) i)) x i))) x
+  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] (β : ι -> Type.{u2}) [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (Zero.toOfNat0.{u2} (β i) (AddMonoid.toZero.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))))] (x : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)), Eq.{max (succ u1) (succ u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Finset.sum.{max u1 u2, u1} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) ι (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Dfinsupp.support.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => _inst_1 i) i))) (fun (i : ι) (x : β i) => _inst_2 i x) x) (fun (i : ι) => FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (fun (_x : β i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β i) => DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _x) (AddHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toAdd.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.addMonoidHomClass.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => _inst_1 i) i))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) _x) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => _inst_1 i) i))) i)) x i))) x
 Case conversion may be inaccurate. Consider using '#align direct_sum.sum_support_of DirectSum.sum_support_ofₓ'. -/
 theorem sum_support_of [∀ (i : ι) (x : β i), Decidable (x ≠ 0)] (x : ⨁ i, β i) :
     (∑ i in x.support, of β i (x i)) = x :=
@@ -205,7 +205,7 @@ variable {β}
 lean 3 declaration is
   forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] (s : Finset.{u1} ι), Function.Injective.{max (succ u1) (succ u2), succ (max u1 u2)} (forall (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (AddMonoidHom.{max u1 u2, max u1 u2} (forall (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (Pi.addZeroClass.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) (fun (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) => β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) i)) (fun (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) => AddMonoid.toAddZeroClass.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) i)) (AddCommMonoid.toAddMonoid.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) i)) ((fun (i : ι) => _inst_1 i) (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i))))) (fun (_x : AddMonoidHom.{max u1 u2, max u1 u2} (forall (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (Pi.addZeroClass.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) (fun (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) => β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) i)) (fun (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) => AddMonoid.toAddZeroClass.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) i)) (AddCommMonoid.toAddMonoid.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) i)) ((fun (i : ι) => _inst_1 i) (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i))))) => (forall (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) i)) -> (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i))) (AddMonoidHom.hasCoeToFun.{max u1 u2, max u1 u2} (forall (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (Pi.addZeroClass.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) (fun (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) => β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) i)) (fun (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) => AddMonoid.toAddZeroClass.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) i)) (AddCommMonoid.toAddMonoid.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) i)) ((fun (i : ι) => _inst_1 i) (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i))))) (DirectSum.mk.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) s))
 but is expected to have type
-  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] (s : Finset.{u1} ι), Function.Injective.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (AddMonoidHom.{max u1 u2, max u2 u1} (forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Pi.addZeroClass.{u1, u2} (Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) (fun (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) => β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (fun (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) => AddMonoid.toAddZeroClass.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (AddCommMonoid.toAddMonoid.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (_inst_1 (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (fun (_x : forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) => DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _x) (AddHomClass.toFunLike.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidHom.{max u1 u2, max u2 u1} (forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Pi.addZeroClass.{u1, u2} (Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) (fun (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) => β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (fun (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) => AddMonoid.toAddZeroClass.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (AddCommMonoid.toAddMonoid.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (_inst_1 (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toAdd.{max u1 u2} (forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (Pi.addZeroClass.{u1, u2} (Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) (fun (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) => β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (fun (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) => AddMonoid.toAddZeroClass.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (AddCommMonoid.toAddMonoid.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (_inst_1 (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)))))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidHom.{max u1 u2, max u2 u1} (forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Pi.addZeroClass.{u1, u2} (Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) (fun (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) => β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (fun (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) => AddMonoid.toAddZeroClass.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (AddCommMonoid.toAddMonoid.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (_inst_1 (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Pi.addZeroClass.{u1, u2} (Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) (fun (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) => β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (fun (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) => AddMonoid.toAddZeroClass.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (AddCommMonoid.toAddMonoid.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (_inst_1 (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.addMonoidHomClass.{max u1 u2, max u1 u2} (forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Pi.addZeroClass.{u1, u2} (Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) (fun (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) => β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (fun (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) => AddMonoid.toAddZeroClass.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (AddCommMonoid.toAddMonoid.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (_inst_1 (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))) (DirectSum.mk.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) s))
+  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] (s : Finset.{u1} ι), Function.Injective.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (AddMonoidHom.{max u1 u2, max u2 u1} (forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Pi.addZeroClass.{u1, u2} (Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) (fun (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) => β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (fun (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) => AddMonoid.toAddZeroClass.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (AddCommMonoid.toAddMonoid.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (_inst_1 (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (fun (_x : forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) => DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _x) (AddHomClass.toFunLike.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidHom.{max u1 u2, max u2 u1} (forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Pi.addZeroClass.{u1, u2} (Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) (fun (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) => β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (fun (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) => AddMonoid.toAddZeroClass.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (AddCommMonoid.toAddMonoid.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (_inst_1 (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toAdd.{max u1 u2} (forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (Pi.addZeroClass.{u1, u2} (Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) (fun (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) => β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (fun (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) => AddMonoid.toAddZeroClass.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (AddCommMonoid.toAddMonoid.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (_inst_1 (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)))))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidHom.{max u1 u2, max u2 u1} (forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Pi.addZeroClass.{u1, u2} (Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) (fun (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) => β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (fun (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) => AddMonoid.toAddZeroClass.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (AddCommMonoid.toAddMonoid.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (_inst_1 (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Pi.addZeroClass.{u1, u2} (Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) (fun (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) => β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (fun (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) => AddMonoid.toAddZeroClass.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (AddCommMonoid.toAddMonoid.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (_inst_1 (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.addMonoidHomClass.{max u1 u2, max u1 u2} (forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Pi.addZeroClass.{u1, u2} (Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) (fun (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) => β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (fun (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) => AddMonoid.toAddZeroClass.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (AddCommMonoid.toAddMonoid.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (_inst_1 (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))) (DirectSum.mk.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) s))
 Case conversion may be inaccurate. Consider using '#align direct_sum.mk_injective DirectSum.mk_injectiveₓ'. -/
 theorem mk_injective (s : Finset ι) : Function.Injective (mk β s) :=
   Dfinsupp.mk_injective s
@@ -215,7 +215,7 @@ theorem mk_injective (s : Finset ι) : Function.Injective (mk β s) :=
 lean 3 declaration is
   forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] (i : ι), Function.Injective.{succ u2, succ (max u1 u2)} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) ((fun (i : ι) => _inst_1 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) ((fun (i : ι) => _inst_1 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i))))) => (β i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) ((fun (i : ι) => _inst_1 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i))
 but is expected to have type
-  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] (i : ι), Function.Injective.{succ u2, max (succ u1) (succ u2)} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (fun (_x : β i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : β i) => DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _x) (AddHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toAdd.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.addMonoidHomClass.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i))
+  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] (i : ι), Function.Injective.{succ u2, max (succ u1) (succ u2)} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (fun (_x : β i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β i) => DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _x) (AddHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toAdd.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.addMonoidHomClass.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i))
 Case conversion may be inaccurate. Consider using '#align direct_sum.of_injective DirectSum.of_injectiveₓ'. -/
 theorem of_injective (i : ι) : Function.Injective (of β i) :=
   Dfinsupp.single_injective
@@ -225,7 +225,7 @@ theorem of_injective (i : ι) : Function.Injective (of β i) :=
 lean 3 declaration is
   forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] {C : (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) -> Prop} (x : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)), (C (OfNat.ofNat.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) 0 (OfNat.mk.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) 0 (Zero.zero.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toHasZero.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))))) -> (forall (i : ι) (x : β i), C (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) ((fun (i : ι) => _inst_1 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) ((fun (i : ι) => _inst_1 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i))))) => (β i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) ((fun (i : ι) => _inst_1 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i) x)) -> (forall (x : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (y : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)), (C x) -> (C y) -> (C (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instHAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toHasAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) x y))) -> (C x)
 but is expected to have type
-  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] {C : (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) -> Prop} (x : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)), (C (OfNat.ofNat.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) 0 (Zero.toOfNat0.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toZero.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))) -> (forall (i : ι) (x : β i), C (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (fun (_x : β i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : β i) => DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _x) (AddHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toAdd.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.addMonoidHomClass.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i) x)) -> (forall (x : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (y : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)), (C x) -> (C y) -> (C (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instHAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) x y))) -> (C x)
+  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] {C : (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) -> Prop} (x : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)), (C (OfNat.ofNat.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) 0 (Zero.toOfNat0.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toZero.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))) -> (forall (i : ι) (x : β i), C (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (fun (_x : β i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β i) => DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _x) (AddHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toAdd.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.addMonoidHomClass.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i) x)) -> (forall (x : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (y : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)), (C x) -> (C y) -> (C (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instHAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) x y))) -> (C x)
 Case conversion may be inaccurate. Consider using '#align direct_sum.induction_on DirectSum.induction_onₓ'. -/
 @[elab_as_elim]
 protected theorem induction_on {C : (⨁ i, β i) → Prop} (x : ⨁ i, β i) (H_zero : C 0)
@@ -240,7 +240,7 @@ protected theorem induction_on {C : (⨁ i, β i) → Prop} (x : ⨁ i, β i) (H
 lean 3 declaration is
   forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] {γ : Type.{u3}} [_inst_2 : AddMonoid.{u3} γ] {{f : AddMonoidHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ _inst_2)}} {{g : AddMonoidHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ _inst_2)}}, (forall (i : ι) (y : β i), Eq.{succ u3} γ (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ _inst_2)) (fun (_x : AddMonoidHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ _inst_2)) => (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) -> γ) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ _inst_2)) f (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) => (β i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) i) y)) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ _inst_2)) (fun (_x : AddMonoidHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ _inst_2)) => (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) -> γ) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ _inst_2)) g (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) => (β i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) i) y))) -> (Eq.{max (succ u3) (succ (max u1 u2))} (AddMonoidHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ _inst_2)) f g)
 but is expected to have type
-  forall {ι : Type.{u2}} [dec_ι : DecidableEq.{succ u2} ι] {β : ι -> Type.{u3}} [_inst_1 : forall (i : ι), AddCommMonoid.{u3} (β i)] {γ : Type.{u1}} [_inst_2 : AddMonoid.{u1} γ] {{f : AddMonoidHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u1} γ _inst_2)}} {{g : AddMonoidHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u1} γ _inst_2)}}, (forall (i : ι) (y : β i), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => γ) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (AddMonoidHom.{u3, max u3 u2} (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (fun (a : β i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : β i) => DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) a) (AddHomClass.toFunLike.{max u2 u3, u3, max u2 u3} (AddMonoidHom.{u3, max u3 u2} (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toAdd.{u3} (β i) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i)))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u3, u3, max u2 u3} (AddMonoidHom.{u3, max u3 u2} (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.addMonoidHomClass.{u3, max u2 u3} (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))) (DirectSum.of.{u2, u3} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i) y)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (AddMonoidHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u1} γ _inst_2)) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (fun (_x : DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => γ) _x) (AddHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u1} γ _inst_2)) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{u1} γ (AddMonoid.toAddZeroClass.{u1} γ _inst_2)) (AddMonoidHomClass.toAddHomClass.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u1} γ _inst_2)) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u1} γ _inst_2) (AddMonoidHom.addMonoidHomClass.{max u2 u3, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u1} γ _inst_2)))) f (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (AddMonoidHom.{u3, max u3 u2} (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (fun (_x : β i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : β i) => DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _x) (AddHomClass.toFunLike.{max u2 u3, u3, max u2 u3} (AddMonoidHom.{u3, max u3 u2} (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toAdd.{u3} (β i) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i)))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u3, u3, max u2 u3} (AddMonoidHom.{u3, max u3 u2} (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.addMonoidHomClass.{u3, max u2 u3} (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))) (DirectSum.of.{u2, u3} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i) y)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (AddMonoidHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u1} γ _inst_2)) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (fun (_x : DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => γ) _x) (AddHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u1} γ _inst_2)) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{u1} γ (AddMonoid.toAddZeroClass.{u1} γ _inst_2)) (AddMonoidHomClass.toAddHomClass.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u1} γ _inst_2)) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u1} γ _inst_2) (AddMonoidHom.addMonoidHomClass.{max u2 u3, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u1} γ _inst_2)))) g (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (AddMonoidHom.{u3, max u3 u2} (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (fun (_x : β i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : β i) => DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _x) (AddHomClass.toFunLike.{max u2 u3, u3, max u2 u3} (AddMonoidHom.{u3, max u3 u2} (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toAdd.{u3} (β i) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i)))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u3, u3, max u2 u3} (AddMonoidHom.{u3, max u3 u2} (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.addMonoidHomClass.{u3, max u2 u3} (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))) (DirectSum.of.{u2, u3} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i) y))) -> (Eq.{max (max (succ u2) (succ u3)) (succ u1)} (AddMonoidHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u1} γ _inst_2)) f g)
+  forall {ι : Type.{u2}} [dec_ι : DecidableEq.{succ u2} ι] {β : ι -> Type.{u3}} [_inst_1 : forall (i : ι), AddCommMonoid.{u3} (β i)] {γ : Type.{u1}} [_inst_2 : AddMonoid.{u1} γ] {{f : AddMonoidHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u1} γ _inst_2)}} {{g : AddMonoidHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u1} γ _inst_2)}}, (forall (i : ι) (y : β i), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => γ) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (AddMonoidHom.{u3, max u3 u2} (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (fun (a : β i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β i) => DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) a) (AddHomClass.toFunLike.{max u2 u3, u3, max u2 u3} (AddMonoidHom.{u3, max u3 u2} (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toAdd.{u3} (β i) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i)))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u3, u3, max u2 u3} (AddMonoidHom.{u3, max u3 u2} (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.addMonoidHomClass.{u3, max u2 u3} (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))) (DirectSum.of.{u2, u3} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i) y)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (AddMonoidHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u1} γ _inst_2)) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (fun (_x : DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => γ) _x) (AddHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u1} γ _inst_2)) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{u1} γ (AddMonoid.toAddZeroClass.{u1} γ _inst_2)) (AddMonoidHomClass.toAddHomClass.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u1} γ _inst_2)) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u1} γ _inst_2) (AddMonoidHom.addMonoidHomClass.{max u2 u3, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u1} γ _inst_2)))) f (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (AddMonoidHom.{u3, max u3 u2} (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (fun (_x : β i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β i) => DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _x) (AddHomClass.toFunLike.{max u2 u3, u3, max u2 u3} (AddMonoidHom.{u3, max u3 u2} (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toAdd.{u3} (β i) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i)))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u3, u3, max u2 u3} (AddMonoidHom.{u3, max u3 u2} (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.addMonoidHomClass.{u3, max u2 u3} (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))) (DirectSum.of.{u2, u3} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i) y)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (AddMonoidHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u1} γ _inst_2)) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (fun (_x : DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => γ) _x) (AddHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u1} γ _inst_2)) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{u1} γ (AddMonoid.toAddZeroClass.{u1} γ _inst_2)) (AddMonoidHomClass.toAddHomClass.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u1} γ _inst_2)) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u1} γ _inst_2) (AddMonoidHom.addMonoidHomClass.{max u2 u3, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u1} γ _inst_2)))) g (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (AddMonoidHom.{u3, max u3 u2} (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (fun (_x : β i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β i) => DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _x) (AddHomClass.toFunLike.{max u2 u3, u3, max u2 u3} (AddMonoidHom.{u3, max u3 u2} (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toAdd.{u3} (β i) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i)))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u3, u3, max u2 u3} (AddMonoidHom.{u3, max u3 u2} (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.addMonoidHomClass.{u3, max u2 u3} (β i) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))) (DirectSum.of.{u2, u3} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i) y))) -> (Eq.{max (max (succ u2) (succ u3)) (succ u1)} (AddMonoidHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u1} γ _inst_2)) f g)
 Case conversion may be inaccurate. Consider using '#align direct_sum.add_hom_ext DirectSum.addHom_extₓ'. -/
 /-- If two additive homomorphisms from `⨁ i, β i` are equal on each `of β i y`,
 then they are equal. -/
@@ -287,7 +287,7 @@ def toAddMonoid : (⨁ i, β i) →+ γ :=
 lean 3 declaration is
   forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] {γ : Type.{u3}} [_inst_2 : AddCommMonoid.{u3} γ] (φ : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (i : ι) (x : β i), Eq.{succ u3} γ (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) -> γ) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (DirectSum.toAddMonoid.{u1, u2, u3} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) γ _inst_2 φ) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) ((fun (i : ι) => _inst_1 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) ((fun (i : ι) => _inst_1 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i))))) => (β i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) ((fun (i : ι) => _inst_1 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i) x)) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (β i) γ (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (_x : AddMonoidHom.{u2, u3} (β i) γ (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => (β i) -> γ) (AddMonoidHom.hasCoeToFun.{u2, u3} (β i) γ (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (φ i) x)
 but is expected to have type
-  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] {γ : Type.{u3}} [_inst_2 : AddCommMonoid.{u3} γ] (φ : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (i : ι) (x : β i), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => γ) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (fun (a : β i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : β i) => DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) a) (AddHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toAdd.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.addMonoidHomClass.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i) x)) (FunLike.coe.{max (max (succ u3) (succ u1)) (succ u2), max (succ u1) (succ u2), succ u3} (AddMonoidHom.{max u2 u1, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (fun (_x : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => γ) _x) (AddHomClass.toFunLike.{max (max u3 u1) u2, max u1 u2, u3} (AddMonoidHom.{max u2 u1, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u1) u2, max u1 u2, u3} (AddMonoidHom.{max u2 u1, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))))) (DirectSum.toAddMonoid.{u1, u2, u3} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) γ _inst_2 φ) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (fun (_x : β i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : β i) => DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _x) (AddHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toAdd.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.addMonoidHomClass.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i) x)) (FunLike.coe.{max (succ u3) (succ u2), succ u2, succ u3} (AddMonoidHom.{u2, u3} (β i) γ (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (β i) (fun (_x : β i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : β i) => γ) _x) (AddHomClass.toFunLike.{max u3 u2, u2, u3} (AddMonoidHom.{u2, u3} (β i) γ (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (β i) γ (AddZeroClass.toAdd.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddZeroClass.toAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u2, u3} (AddMonoidHom.{u2, u3} (β i) γ (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (β i) γ (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoidHom.addMonoidHomClass.{u2, u3} (β i) γ (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))))) (φ i) x)
+  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] {γ : Type.{u3}} [_inst_2 : AddCommMonoid.{u3} γ] (φ : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (i : ι) (x : β i), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => γ) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (fun (a : β i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β i) => DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) a) (AddHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toAdd.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.addMonoidHomClass.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i) x)) (FunLike.coe.{max (max (succ u3) (succ u1)) (succ u2), max (succ u1) (succ u2), succ u3} (AddMonoidHom.{max u2 u1, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (fun (_x : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => γ) _x) (AddHomClass.toFunLike.{max (max u3 u1) u2, max u1 u2, u3} (AddMonoidHom.{max u2 u1, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u1) u2, max u1 u2, u3} (AddMonoidHom.{max u2 u1, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))))) (DirectSum.toAddMonoid.{u1, u2, u3} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) γ _inst_2 φ) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (fun (_x : β i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β i) => DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _x) (AddHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toAdd.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.addMonoidHomClass.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i) x)) (FunLike.coe.{max (succ u3) (succ u2), succ u2, succ u3} (AddMonoidHom.{u2, u3} (β i) γ (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (β i) (fun (_x : β i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β i) => γ) _x) (AddHomClass.toFunLike.{max u3 u2, u2, u3} (AddMonoidHom.{u2, u3} (β i) γ (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (β i) γ (AddZeroClass.toAdd.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddZeroClass.toAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u2, u3} (AddMonoidHom.{u2, u3} (β i) γ (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (β i) γ (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoidHom.addMonoidHomClass.{u2, u3} (β i) γ (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))))) (φ i) x)
 Case conversion may be inaccurate. Consider using '#align direct_sum.to_add_monoid_of DirectSum.toAddMonoid_ofₓ'. -/
 @[simp]
 theorem toAddMonoid_of (i) (x : β i) : toAddMonoid φ (of β i x) = φ i x :=
@@ -298,7 +298,7 @@ theorem toAddMonoid_of (i) (x : β i) : toAddMonoid φ (of β i x) = φ i x :=
 lean 3 declaration is
   forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] {γ : Type.{u3}} [_inst_2 : AddCommMonoid.{u3} γ] (ψ : AddMonoidHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (f : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)), Eq.{succ u3} γ (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) -> γ) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) ψ f) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) -> γ) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (DirectSum.toAddMonoid.{u1, u2, u3} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) γ _inst_2 (fun (i : ι) => AddMonoidHom.comp.{u2, max u1 u2, u3} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) ψ (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i))) f)
 but is expected to have type
-  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] {γ : Type.{u3}} [_inst_2 : AddCommMonoid.{u3} γ] (ψ : AddMonoidHom.{max u2 u1, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (f : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => γ) f) (FunLike.coe.{max (max (succ u3) (succ u1)) (succ u2), max (succ u1) (succ u2), succ u3} (AddMonoidHom.{max u2 u1, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (fun (_x : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => γ) _x) (AddHomClass.toFunLike.{max (max u3 u1) u2, max u1 u2, u3} (AddMonoidHom.{max u2 u1, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u1) u2, max u1 u2, u3} (AddMonoidHom.{max u2 u1, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))))) ψ f) (FunLike.coe.{max (max (succ u3) (succ u1)) (succ u2), max (succ u1) (succ u2), succ u3} (AddMonoidHom.{max u2 u1, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (fun (_x : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => γ) _x) (AddHomClass.toFunLike.{max (max u3 u1) u2, max u1 u2, u3} (AddMonoidHom.{max u2 u1, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u1) u2, max u1 u2, u3} (AddMonoidHom.{max u2 u1, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))))) (DirectSum.toAddMonoid.{u1, u2, u3} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) γ _inst_2 (fun (i : ι) => AddMonoidHom.comp.{u2, max u1 u2, u3} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) ψ (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i))) f)
+  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] {γ : Type.{u3}} [_inst_2 : AddCommMonoid.{u3} γ] (ψ : AddMonoidHom.{max u2 u1, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (f : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => γ) f) (FunLike.coe.{max (max (succ u3) (succ u1)) (succ u2), max (succ u1) (succ u2), succ u3} (AddMonoidHom.{max u2 u1, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (fun (_x : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => γ) _x) (AddHomClass.toFunLike.{max (max u3 u1) u2, max u1 u2, u3} (AddMonoidHom.{max u2 u1, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u1) u2, max u1 u2, u3} (AddMonoidHom.{max u2 u1, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))))) ψ f) (FunLike.coe.{max (max (succ u3) (succ u1)) (succ u2), max (succ u1) (succ u2), succ u3} (AddMonoidHom.{max u2 u1, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (fun (_x : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => γ) _x) (AddHomClass.toFunLike.{max (max u3 u1) u2, max u1 u2, u3} (AddMonoidHom.{max u2 u1, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u1) u2, max u1 u2, u3} (AddMonoidHom.{max u2 u1, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))))) (DirectSum.toAddMonoid.{u1, u2, u3} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) γ _inst_2 (fun (i : ι) => AddMonoidHom.comp.{u2, max u1 u2, u3} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) γ (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) ψ (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i))) f)
 Case conversion may be inaccurate. Consider using '#align direct_sum.to_add_monoid.unique DirectSum.toAddMonoid.uniqueₓ'. -/
 theorem toAddMonoid.unique (f : ⨁ i, β i) : ψ f = toAddMonoid (fun i => ψ.comp (of β i)) f :=
   by
@@ -329,7 +329,7 @@ def fromAddMonoid : (⨁ i, γ →+ β i) →+ γ →+ ⨁ i, β i :=
 lean 3 declaration is
   forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] {γ : Type.{u3}} [_inst_2 : AddCommMonoid.{u3} γ] (i : ι) (f : AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))), Eq.{max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (coeFn.{max (succ (max (max u1 u2) u3)) (succ (max u1 u2 u3)), max (succ (max u1 u2 u3)) (succ (max (max u1 u2) u3))} (AddMonoidHom.{max u1 u2 u3, max (max u1 u2) u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoidHom.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoid.toAddZeroClass.{max u1 u2 u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u2 u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (DirectSum.addCommMonoid.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (AddMonoidHom.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (AddMonoidHom.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addCommMonoid.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) (fun (_x : AddMonoidHom.{max u1 u2 u3, max (max u1 u2) u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoidHom.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoid.toAddZeroClass.{max u1 u2 u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u2 u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (DirectSum.addCommMonoid.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (AddMonoidHom.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (AddMonoidHom.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addCommMonoid.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) => (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) -> (AddMonoidHom.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) (AddMonoidHom.hasCoeToFun.{max u1 u2 u3, max (max u1 u2) u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoidHom.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoid.toAddZeroClass.{max u1 u2 u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u2 u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (DirectSum.addCommMonoid.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (AddMonoidHom.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (AddMonoidHom.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addCommMonoid.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) (DirectSum.fromAddMonoid.{u1, u2, u3} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) γ _inst_2) (coeFn.{max (succ (max u1 u2 u3)) (succ (max u2 u3)), max (succ (max u2 u3)) (succ (max u1 u2 u3))} (AddMonoidHom.{max u2 u3, max u1 u2 u3} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u2 u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u2 u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (DirectSum.addCommMonoid.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (fun (_x : AddMonoidHom.{max u2 u3, max u1 u2 u3} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u2 u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u2 u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (DirectSum.addCommMonoid.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) => (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) -> (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoidHom.hasCoeToFun.{max u2 u3, max u1 u2 u3} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u2 u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u2 u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (DirectSum.addCommMonoid.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (DirectSum.of.{u1, max u2 u3} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)) i) f)) (AddMonoidHom.comp.{u3, u2, max u1 u2} γ (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) i) f)
 but is expected to have type
-  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] {γ : Type.{u3}} [_inst_2 : AddCommMonoid.{u3} γ] (i : ι) (f : AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))), Eq.{max (max (succ u3) (succ u1)) (succ u2)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) => AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (FunLike.coe.{max (succ u1) (succ (max u3 u2)), succ (max u3 u2), max (succ u1) (succ (max u3 u2))} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (a : AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) => DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) a) (AddHomClass.toFunLike.{max u1 u3 u2, max u3 u2, max u1 u3 u2} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddZeroClass.toAdd.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddZeroClass.toAdd.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHomClass.toAddHomClass.{max u1 u3 u2, max u3 u2, max u1 u3 u2} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoidHom.addMonoidHomClass.{max u3 u2, max u1 u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))))) (DirectSum.of.{u1, max u3 u2} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)) i) f)) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (AddMonoidHom.{max (max u2 u3) u1, max (max u2 u1) u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addCommMonoid.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (fun (_x : DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) => AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) _x) (AddHomClass.toFunLike.{max (max u3 u2) u1, max (max u3 u2) u1, max (max u3 u2) u1} (AddMonoidHom.{max (max u2 u3) u1, max (max u2 u1) u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addCommMonoid.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{max (max u3 u2) u1} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddZeroClass.toAdd.{max (max u3 u2) u1} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addCommMonoid.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u2) u1, max (max u3 u2) u1, max (max u3 u2) u1} (AddMonoidHom.{max (max u2 u3) u1, max (max u2 u1) u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addCommMonoid.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addCommMonoid.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addMonoidHomClass.{max (max u3 u2) u1, max (max u3 u2) u1} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addCommMonoid.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))))) (DirectSum.fromAddMonoid.{u1, u2, u3} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) γ _inst_2) (FunLike.coe.{max (succ u1) (succ (max u3 u2)), succ (max u3 u2), max (succ u1) (succ (max u3 u2))} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (_x : AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) => DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) _x) (AddHomClass.toFunLike.{max u1 u3 u2, max u3 u2, max u1 u3 u2} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddZeroClass.toAdd.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddZeroClass.toAdd.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHomClass.toAddHomClass.{max u1 u3 u2, max u3 u2, max u1 u3 u2} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoidHom.addMonoidHomClass.{max u3 u2, max u1 u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))))) (DirectSum.of.{u1, max u3 u2} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)) i) f)) (AddMonoidHom.comp.{u3, u2, max u1 u2} γ (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i) f)
+  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] {γ : Type.{u3}} [_inst_2 : AddCommMonoid.{u3} γ] (i : ι) (f : AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))), Eq.{max (max (succ u3) (succ u1)) (succ u2)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) => AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (FunLike.coe.{max (succ u1) (succ (max u3 u2)), succ (max u3 u2), max (succ u1) (succ (max u3 u2))} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (a : AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) => DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) a) (AddHomClass.toFunLike.{max u1 u3 u2, max u3 u2, max u1 u3 u2} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddZeroClass.toAdd.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddZeroClass.toAdd.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHomClass.toAddHomClass.{max u1 u3 u2, max u3 u2, max u1 u3 u2} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoidHom.addMonoidHomClass.{max u3 u2, max u1 u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))))) (DirectSum.of.{u1, max u3 u2} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)) i) f)) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (AddMonoidHom.{max (max u2 u3) u1, max (max u2 u1) u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addCommMonoid.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (fun (_x : DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) => AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) _x) (AddHomClass.toFunLike.{max (max u3 u2) u1, max (max u3 u2) u1, max (max u3 u2) u1} (AddMonoidHom.{max (max u2 u3) u1, max (max u2 u1) u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addCommMonoid.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{max (max u3 u2) u1} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddZeroClass.toAdd.{max (max u3 u2) u1} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addCommMonoid.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u2) u1, max (max u3 u2) u1, max (max u3 u2) u1} (AddMonoidHom.{max (max u2 u3) u1, max (max u2 u1) u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addCommMonoid.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addCommMonoid.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addMonoidHomClass.{max (max u3 u2) u1, max (max u3 u2) u1} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addCommMonoid.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))))) (DirectSum.fromAddMonoid.{u1, u2, u3} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) γ _inst_2) (FunLike.coe.{max (succ u1) (succ (max u3 u2)), succ (max u3 u2), max (succ u1) (succ (max u3 u2))} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (_x : AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) => DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) _x) (AddHomClass.toFunLike.{max u1 u3 u2, max u3 u2, max u1 u3 u2} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddZeroClass.toAdd.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddZeroClass.toAdd.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHomClass.toAddHomClass.{max u1 u3 u2, max u3 u2, max u1 u3 u2} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoidHom.addMonoidHomClass.{max u3 u2, max u1 u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))))) (DirectSum.of.{u1, max u3 u2} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)) i) f)) (AddMonoidHom.comp.{u3, u2, max u1 u2} γ (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i) f)
 Case conversion may be inaccurate. Consider using '#align direct_sum.from_add_monoid_of DirectSum.fromAddMonoid_ofₓ'. -/
 @[simp]
 theorem fromAddMonoid_of (i : ι) (f : γ →+ β i) : fromAddMonoid (of _ i f) = (of _ i).comp f :=
@@ -342,7 +342,7 @@ theorem fromAddMonoid_of (i : ι) (f : γ →+ β i) : fromAddMonoid (of _ i f)
 lean 3 declaration is
   forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] {γ : Type.{u3}} [_inst_2 : AddCommMonoid.{u3} γ] (i : ι) (f : AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (x : γ), Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ (max u1 u2))} (AddMonoidHom.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (fun (_x : AddMonoidHom.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) => γ -> (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (AddMonoidHom.hasCoeToFun.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (coeFn.{max (succ (max (max u1 u2) u3)) (succ (max u1 u2 u3)), max (succ (max u1 u2 u3)) (succ (max (max u1 u2) u3))} (AddMonoidHom.{max u1 u2 u3, max (max u1 u2) u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoidHom.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoid.toAddZeroClass.{max u1 u2 u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u2 u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (DirectSum.addCommMonoid.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (AddMonoidHom.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (AddMonoidHom.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addCommMonoid.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) (fun (_x : AddMonoidHom.{max u1 u2 u3, max (max u1 u2) u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoidHom.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoid.toAddZeroClass.{max u1 u2 u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u2 u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (DirectSum.addCommMonoid.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (AddMonoidHom.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (AddMonoidHom.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addCommMonoid.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) => (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) -> (AddMonoidHom.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) (AddMonoidHom.hasCoeToFun.{max u1 u2 u3, max (max u1 u2) u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoidHom.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoid.toAddZeroClass.{max u1 u2 u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u2 u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (DirectSum.addCommMonoid.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (AddMonoidHom.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (AddMonoidHom.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addCommMonoid.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) (DirectSum.fromAddMonoid.{u1, u2, u3} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) γ _inst_2) (coeFn.{max (succ (max u1 u2 u3)) (succ (max u2 u3)), max (succ (max u2 u3)) (succ (max u1 u2 u3))} (AddMonoidHom.{max u2 u3, max u1 u2 u3} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u2 u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u2 u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (DirectSum.addCommMonoid.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (fun (_x : AddMonoidHom.{max u2 u3, max u1 u2 u3} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u2 u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u2 u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (DirectSum.addCommMonoid.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) => (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) -> (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoidHom.hasCoeToFun.{max u2 u3, max u1 u2 u3} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u2 u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u2 u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (DirectSum.addCommMonoid.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (DirectSum.of.{u1, max u2 u3} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)) i) f)) x) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) => (β i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) i) (coeFn.{max (succ u2) (succ u3), max (succ u3) (succ u2)} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (_x : AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) => γ -> (β i)) (AddMonoidHom.hasCoeToFun.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) f x))
 but is expected to have type
-  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] {γ : Type.{u3}} [_inst_2 : AddCommMonoid.{u3} γ] (i : ι) (f : AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (x : γ), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : γ) => DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) x) (FunLike.coe.{max (max (succ u3) (succ u1)) (succ u2), succ u3, max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) => AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (FunLike.coe.{max (succ u1) (succ (max u3 u2)), succ (max u3 u2), max (succ u1) (succ (max u3 u2))} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (a : AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) => DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) a) (AddHomClass.toFunLike.{max u1 u3 u2, max u3 u2, max u1 u3 u2} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddZeroClass.toAdd.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddZeroClass.toAdd.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHomClass.toAddHomClass.{max u1 u3 u2, max u3 u2, max u1 u3 u2} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoidHom.addMonoidHomClass.{max u3 u2, max u1 u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))))) (DirectSum.of.{u1, max u3 u2} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)) i) f)) γ (fun (_x : γ) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : γ) => DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _x) (AddHomClass.toFunLike.{max (max u3 u1) u2, u3, max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) => AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (FunLike.coe.{max (succ u1) (succ (max u3 u2)), succ (max u3 u2), max (succ u1) (succ (max u3 u2))} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (a : AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) => DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) a) (AddHomClass.toFunLike.{max u1 u3 u2, max u3 u2, max u1 u3 u2} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddZeroClass.toAdd.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddZeroClass.toAdd.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHomClass.toAddHomClass.{max u1 u3 u2, max u3 u2, max u1 u3 u2} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoidHom.addMonoidHomClass.{max u3 u2, max u1 u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))))) (DirectSum.of.{u1, max u3 u2} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)) i) f)) γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u1) u2, u3, max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) => AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (FunLike.coe.{max (succ u1) (succ (max u3 u2)), succ (max u3 u2), max (succ u1) (succ (max u3 u2))} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (a : AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) => DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) a) (AddHomClass.toFunLike.{max u1 u3 u2, max u3 u2, max u1 u3 u2} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddZeroClass.toAdd.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddZeroClass.toAdd.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHomClass.toAddHomClass.{max u1 u3 u2, max u3 u2, max u1 u3 u2} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoidHom.addMonoidHomClass.{max u3 u2, max u1 u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))))) (DirectSum.of.{u1, max u3 u2} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)) i) f)) γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.addMonoidHomClass.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (AddMonoidHom.{max (max u2 u3) u1, max (max u2 u1) u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addCommMonoid.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (fun (_x : DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) => AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) _x) (AddHomClass.toFunLike.{max (max u3 u2) u1, max (max u3 u2) u1, max (max u3 u2) u1} (AddMonoidHom.{max (max u2 u3) u1, max (max u2 u1) u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addCommMonoid.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{max (max u3 u2) u1} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddZeroClass.toAdd.{max (max u3 u2) u1} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addCommMonoid.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u2) u1, max (max u3 u2) u1, max (max u3 u2) u1} (AddMonoidHom.{max (max u2 u3) u1, max (max u2 u1) u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addCommMonoid.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addCommMonoid.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addMonoidHomClass.{max (max u3 u2) u1, max (max u3 u2) u1} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addCommMonoid.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))))) (DirectSum.fromAddMonoid.{u1, u2, u3} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) γ _inst_2) (FunLike.coe.{max (succ u1) (succ (max u3 u2)), succ (max u3 u2), max (succ u1) (succ (max u3 u2))} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (_x : AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) => DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) _x) (AddHomClass.toFunLike.{max u1 u3 u2, max u3 u2, max u1 u3 u2} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddZeroClass.toAdd.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddZeroClass.toAdd.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHomClass.toAddHomClass.{max u1 u3 u2, max u3 u2, max u1 u3 u2} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoidHom.addMonoidHomClass.{max u3 u2, max u1 u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))))) (DirectSum.of.{u1, max u3 u2} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)) i) f)) x) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (fun (_x : β i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : β i) => DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _x) (AddHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toAdd.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.addMonoidHomClass.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) γ (fun (_x : γ) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : γ) => β i) _x) (AddHomClass.toFunLike.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) γ (β i) (AddZeroClass.toAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddZeroClass.toAdd.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoidHom.addMonoidHomClass.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))))) f x))
+  forall {ι : Type.{u1}} [dec_ι : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] {γ : Type.{u3}} [_inst_2 : AddCommMonoid.{u3} γ] (i : ι) (f : AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (x : γ), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : γ) => DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) x) (FunLike.coe.{max (max (succ u3) (succ u1)) (succ u2), succ u3, max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) => AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (FunLike.coe.{max (succ u1) (succ (max u3 u2)), succ (max u3 u2), max (succ u1) (succ (max u3 u2))} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (a : AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) => DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) a) (AddHomClass.toFunLike.{max u1 u3 u2, max u3 u2, max u1 u3 u2} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddZeroClass.toAdd.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddZeroClass.toAdd.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHomClass.toAddHomClass.{max u1 u3 u2, max u3 u2, max u1 u3 u2} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoidHom.addMonoidHomClass.{max u3 u2, max u1 u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))))) (DirectSum.of.{u1, max u3 u2} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)) i) f)) γ (fun (_x : γ) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : γ) => DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _x) (AddHomClass.toFunLike.{max (max u3 u1) u2, u3, max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) => AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (FunLike.coe.{max (succ u1) (succ (max u3 u2)), succ (max u3 u2), max (succ u1) (succ (max u3 u2))} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (a : AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) => DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) a) (AddHomClass.toFunLike.{max u1 u3 u2, max u3 u2, max u1 u3 u2} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddZeroClass.toAdd.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddZeroClass.toAdd.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHomClass.toAddHomClass.{max u1 u3 u2, max u3 u2, max u1 u3 u2} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoidHom.addMonoidHomClass.{max u3 u2, max u1 u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))))) (DirectSum.of.{u1, max u3 u2} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)) i) f)) γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u1) u2, u3, max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) => AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (FunLike.coe.{max (succ u1) (succ (max u3 u2)), succ (max u3 u2), max (succ u1) (succ (max u3 u2))} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (a : AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) => DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) a) (AddHomClass.toFunLike.{max u1 u3 u2, max u3 u2, max u1 u3 u2} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddZeroClass.toAdd.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddZeroClass.toAdd.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHomClass.toAddHomClass.{max u1 u3 u2, max u3 u2, max u1 u3 u2} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoidHom.addMonoidHomClass.{max u3 u2, max u1 u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))))) (DirectSum.of.{u1, max u3 u2} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)) i) f)) γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.addMonoidHomClass.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (AddMonoidHom.{max (max u2 u3) u1, max (max u2 u1) u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addCommMonoid.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (fun (_x : DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) => AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) _x) (AddHomClass.toFunLike.{max (max u3 u2) u1, max (max u3 u2) u1, max (max u3 u2) u1} (AddMonoidHom.{max (max u2 u3) u1, max (max u2 u1) u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addCommMonoid.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{max (max u3 u2) u1} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddZeroClass.toAdd.{max (max u3 u2) u1} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addCommMonoid.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u2) u1, max (max u3 u2) u1, max (max u3 u2) u1} (AddMonoidHom.{max (max u2 u3) u1, max (max u2 u1) u3} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addCommMonoid.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addCommMonoid.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addMonoidHomClass.{max (max u3 u2) u1, max (max u3 u2) u1} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (DirectSum.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddCommMonoid.toAddMonoid.{max (max u3 u1) u2} (AddMonoidHom.{u3, max u2 u1} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.addCommMonoid.{u3, max u1 u2} γ (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))))) (DirectSum.fromAddMonoid.{u1, u2, u3} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) γ _inst_2) (FunLike.coe.{max (succ u1) (succ (max u3 u2)), succ (max u3 u2), max (succ u1) (succ (max u3 u2))} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (_x : AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) => DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) _x) (AddHomClass.toFunLike.{max u1 u3 u2, max u3 u2, max u1 u3 u2} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddZeroClass.toAdd.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddZeroClass.toAdd.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHomClass.toAddHomClass.{max u1 u3 u2, max u3 u2, max u1 u3 u2} (AddMonoidHom.{max u3 u2, max (max u3 u2) u1} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))) (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))))) (AddMonoidHom.addMonoidHomClass.{max u3 u2, max u1 u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddCommMonoid.toAddMonoid.{max u3 u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (AddCommMonoid.toAddMonoid.{max u1 u3 u2} (DirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i))) (instAddCommMonoidDirectSum.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)))))))) (DirectSum.of.{u1, max u3 u2} ι (fun (a : ι) (b : ι) => dec_ι a b) (fun (i : ι) => AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => AddMonoidHom.addCommMonoid.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (_inst_1 i)) i) f)) x) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (fun (_x : β i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β i) => DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _x) (AddHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddZeroClass.toAdd.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.addMonoidHomClass.{u2, max u1 u2} (β i) (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => dec_ι a b) β (fun (i : ι) => _inst_1 i) i) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) γ (fun (_x : γ) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : γ) => β i) _x) (AddHomClass.toFunLike.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) γ (β i) (AddZeroClass.toAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddZeroClass.toAdd.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoidHom.addMonoidHomClass.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))))) f x))
 Case conversion may be inaccurate. Consider using '#align direct_sum.from_add_monoid_of_apply DirectSum.fromAddMonoid_of_applyₓ'. -/
 theorem fromAddMonoid_of_apply (i : ι) (f : γ →+ β i) (x : γ) :
     fromAddMonoid (of _ i f) x = of _ i (f x) := by rw [from_add_monoid_of, AddMonoidHom.coe_comp]
@@ -419,7 +419,7 @@ def equivCongrLeft (h : ι ≃ κ) : (⨁ i, β i) ≃+ ⨁ k, β (h.symm k) :=
 lean 3 declaration is
   forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] {κ : Type.{u3}} (h : Equiv.{succ u1, succ u3} ι κ) (f : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (k : κ), Eq.{succ u2} (β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (coeFn.{succ (max u3 u2), max (succ u3) (succ u2)} (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (fun (_x : DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) => forall (i : κ), β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i)) (DirectSum.hasCoeToFun.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (coeFn.{max (succ (max u1 u2)) (succ (max u3 u2)), max (succ (max u1 u2)) (succ (max u3 u2))} (AddEquiv.{max u1 u2, max u3 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (AddZeroClass.toHasAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toHasAdd.{max u3 u2} (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (DirectSum.addCommMonoid.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))))))) (fun (_x : AddEquiv.{max u1 u2, max u3 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (AddZeroClass.toHasAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toHasAdd.{max u3 u2} (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (DirectSum.addCommMonoid.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))))))) => (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) -> (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i)))) (AddEquiv.hasCoeToFun.{max u1 u2, max u3 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (AddZeroClass.toHasAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toHasAdd.{max u3 u2} (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))) (DirectSum.addCommMonoid.{u3, u2} κ (fun (k : κ) => β (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k)) (fun (i : κ) => _inst_1 (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) i))))))) (DirectSum.equivCongrLeft.{u1, u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) κ h) f) k) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (fun (_x : DirectSum.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => forall (i : ι), β i) (DirectSum.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) f (coeFn.{max 1 (max (succ u3) (succ u1)) (succ u1) (succ u3), max (succ u3) (succ u1)} (Equiv.{succ u3, succ u1} κ ι) (fun (_x : Equiv.{succ u3, succ u1} κ ι) => κ -> ι) (Equiv.hasCoeToFun.{succ u3, succ u1} κ ι) (Equiv.symm.{succ u1, succ u3} ι κ h) k))
 but is expected to have type
-  forall {ι : Type.{u2}} {β : ι -> Type.{u3}} [_inst_1 : forall (i : ι), AddCommMonoid.{u3} (β i)] {κ : Type.{u1}} (h : Equiv.{succ u2, succ u1} ι κ) (f : DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (k : κ), Eq.{succ u3} ((fun (i : κ) => (fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) i) k) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (Dfinsupp.{u1, u3} κ (fun (i : κ) => (fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) i) (fun (i : κ) => (fun (i : κ) => AddMonoid.toZero.{u3} ((fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) i) ((fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i)) i))) i)) κ (fun (_x : κ) => (fun (i : κ) => (fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) i) _x) (Dfinsupp.funLike.{u1, u3} κ (fun (k : κ) => (fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) k) (fun (i : κ) => (fun (i : κ) => AddMonoid.toZero.{u3} ((fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) i) ((fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i)) i))) i)) (FunLike.coe.{max (max (succ u2) (succ u1)) (succ u3), max (succ u2) (succ u3), max (succ u1) (succ u3)} (AddEquiv.{max u3 u2, max u3 u1} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (instAddCommMonoidDirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))))))) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (fun (_x : DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) _x) (EmbeddingLike.toFunLike.{max (max (succ u2) (succ u1)) (succ u3), max (succ u2) (succ u3), max (succ u1) (succ u3)} (AddEquiv.{max u3 u2, max u3 u1} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (instAddCommMonoidDirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))))))) (DirectSum.{u2, u3} ι (fun (k : ι) => β k) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (EquivLike.toEmbeddingLike.{max (max (succ u2) (succ u1)) (succ u3), max (succ u2) (succ u3), max (succ u1) (succ u3)} (AddEquiv.{max u3 u2, max u3 u1} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (instAddCommMonoidDirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))))))) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (_x : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (_x : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddEquivClass.toEquivLike.{max (max u2 u1) u3, max u2 u3, max u1 u3} (AddEquiv.{max u3 u2, max u3 u1} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (instAddCommMonoidDirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))))))) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (instAddCommMonoidDirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i)))))) (AddEquiv.instAddEquivClassAddEquiv.{max u2 u3, max u1 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (instAddCommMonoidDirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i)))))))))) (DirectSum.equivCongrLeft.{u2, u3, u1} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) κ h) f) k) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (Dfinsupp.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => _inst_1 i) i))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) _x) (Dfinsupp.funLike.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => _inst_1 i) i))) i)) f (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (_x : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : κ) => ι) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k))
+  forall {ι : Type.{u2}} {β : ι -> Type.{u3}} [_inst_1 : forall (i : ι), AddCommMonoid.{u3} (β i)] {κ : Type.{u1}} (h : Equiv.{succ u2, succ u1} ι κ) (f : DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (k : κ), Eq.{succ u3} ((fun (i : κ) => (fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) i) k) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (Dfinsupp.{u1, u3} κ (fun (i : κ) => (fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) i) (fun (i : κ) => (fun (i : κ) => AddMonoid.toZero.{u3} ((fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) i) ((fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i)) i))) i)) κ (fun (_x : κ) => (fun (i : κ) => (fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) i) _x) (Dfinsupp.funLike.{u1, u3} κ (fun (k : κ) => (fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) k) (fun (i : κ) => (fun (i : κ) => AddMonoid.toZero.{u3} ((fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : κ) => (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) i) i) ((fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i)) i))) i)) (FunLike.coe.{max (max (succ u2) (succ u1)) (succ u3), max (succ u2) (succ u3), max (succ u1) (succ u3)} (AddEquiv.{max u3 u2, max u3 u1} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (instAddCommMonoidDirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))))))) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (fun (_x : DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) _x) (EmbeddingLike.toFunLike.{max (max (succ u2) (succ u1)) (succ u3), max (succ u2) (succ u3), max (succ u1) (succ u3)} (AddEquiv.{max u3 u2, max u3 u1} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (instAddCommMonoidDirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))))))) (DirectSum.{u2, u3} ι (fun (k : ι) => β k) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (EquivLike.toEmbeddingLike.{max (max (succ u2) (succ u1)) (succ u3), max (succ u2) (succ u3), max (succ u1) (succ u3)} (AddEquiv.{max u3 u2, max u3 u1} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (instAddCommMonoidDirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))))))) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (_x : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (_x : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddEquivClass.toEquivLike.{max (max u2 u1) u3, max u2 u3, max u1 u3} (AddEquiv.{max u3 u2, max u3 u1} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (instAddCommMonoidDirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))))))) (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (instAddCommMonoidDirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i)))))) (AddEquiv.instAddEquivClassAddEquiv.{max u2 u3, max u1 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i))) (instAddCommMonoidDirectSum.{u1, u3} κ (fun (k : κ) => β (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k)) (fun (i : κ) => _inst_1 (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (a : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) a) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) i)))))))))) (DirectSum.equivCongrLeft.{u2, u3, u1} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) κ h) f) k) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (Dfinsupp.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => _inst_1 i) i))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) _x) (Dfinsupp.funLike.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => _inst_1 i) i))) i)) f (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} κ ι) κ (fun (_x : κ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : κ) => ι) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} κ ι) (Equiv.symm.{succ u2, succ u1} ι κ h) k))
 Case conversion may be inaccurate. Consider using '#align direct_sum.equiv_congr_left_apply DirectSum.equivCongrLeft_applyₓ'. -/
 @[simp]
 theorem equivCongrLeft_apply (h : ι ≃ κ) (f : ⨁ i, β i) (k : κ) :
@@ -472,7 +472,7 @@ noncomputable def sigmaCurry : (⨁ i : Σi, _, δ i.1 i.2) →+ ⨁ (i) (j), δ
 lean 3 declaration is
   forall {ι : Type.{u2}} {α : ι -> Type.{u1}} {δ : forall (i : ι), (α i) -> Type.{u3}} [_inst_3 : forall (i : ι) (j : α i), AddCommMonoid.{u3} (δ i j)] (f : DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (i : ι) (j : α i), Eq.{succ u3} (δ i j) (coeFn.{succ (max u1 u3), max (succ u1) (succ u3)} (DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (_x : DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) => forall (i_1 : α i), δ i i_1) (DirectSum.hasCoeToFun.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (coeFn.{succ (max u2 u1 u3), max (succ u2) (succ (max u1 u3))} (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (fun (_x : DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) => forall (i : ι), DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (DirectSum.hasCoeToFun.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (coeFn.{max (succ (max u2 u1 u3)) (succ (max (max u2 u1) u3)), max (succ (max (max u2 u1) u3)) (succ (max u2 u1 u3))} (AddMonoidHom.{max (max u2 u1) u3, max u2 u1 u3} (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddMonoid.toAddZeroClass.{max (max u2 u1) u3} (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (AddCommMonoid.toAddMonoid.{max (max u2 u1) u3} (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (DirectSum.addCommMonoid.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))))) (AddMonoid.toAddZeroClass.{max u2 u1 u3} (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max u2 u1 u3} (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (DirectSum.addCommMonoid.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)))))) (fun (_x : AddMonoidHom.{max (max u2 u1) u3, max u2 u1 u3} (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddMonoid.toAddZeroClass.{max (max u2 u1) u3} (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (AddCommMonoid.toAddMonoid.{max (max u2 u1) u3} (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (DirectSum.addCommMonoid.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))))) (AddMonoid.toAddZeroClass.{max u2 u1 u3} (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max u2 u1 u3} (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (DirectSum.addCommMonoid.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)))))) => (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) -> (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)))) (AddMonoidHom.hasCoeToFun.{max (max u2 u1) u3, max u2 u1 u3} (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddMonoid.toAddZeroClass.{max (max u2 u1) u3} (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (AddCommMonoid.toAddMonoid.{max (max u2 u1) u3} (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (DirectSum.addCommMonoid.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))))) (AddMonoid.toAddZeroClass.{max u2 u1 u3} (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max u2 u1 u3} (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (DirectSum.addCommMonoid.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)))))) (DirectSum.sigmaCurry.{u1, u2, u3} ι (fun (i : ι) => α i) δ _inst_3) f) i) j) (coeFn.{succ (max (max u2 u1) u3), max (succ (max u2 u1)) (succ u3)} (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (fun (_x : DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) => forall (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)), δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (DirectSum.hasCoeToFun.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) f (Sigma.mk.{u2, u1} ι (fun (i : ι) => α i) i j))
 but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} {δ : forall (i : ι), (α i) -> Type.{u3}} [_inst_3 : forall (i : ι) (j : α i), AddCommMonoid.{u3} (δ i j)] (f : DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (i : ι) (j : α i), Eq.{succ u3} ((fun (i_1 : α i) => (fun (i_1 : α i) => (fun (j : α i) => δ i j) i_1) i_1) j) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (Dfinsupp.{u1, u3} (α i) (fun (i_1 : α i) => (fun (i_1 : α i) => (fun (j : α i) => δ i j) i_1) i_1) (fun (i_1 : α i) => (fun (i_1 : α i) => AddMonoid.toZero.{u3} ((fun (i_1 : α i) => (fun (j : α i) => δ i j) i_1) i_1) (AddCommMonoid.toAddMonoid.{u3} ((fun (i_1 : α i) => (fun (j : α i) => δ i j) i_1) i_1) ((fun (i_1 : α i) => _inst_3 i i_1) i_1))) i_1)) (α i) (fun (_x : α i) => (fun (i_1 : α i) => (fun (i_1 : α i) => (fun (j : α i) => δ i j) i_1) i_1) _x) (Dfinsupp.funLike.{u1, u3} (α i) (fun (j : α i) => (fun (i_1 : α i) => (fun (j : α i) => δ i j) i_1) j) (fun (i_1 : α i) => (fun (i_1 : α i) => AddMonoid.toZero.{u3} ((fun (i_1 : α i) => (fun (j : α i) => δ i j) i_1) i_1) (AddCommMonoid.toAddMonoid.{u3} ((fun (i_1 : α i) => (fun (j : α i) => δ i j) i_1) i_1) ((fun (i_1 : α i) => _inst_3 i i_1) i_1))) i_1)) (FunLike.coe.{max (succ u2) (succ (max u1 u3)), succ u2, succ (max u1 u3)} (Dfinsupp.{u2, max u1 u3} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{max u1 u3} ((fun (i : ι) => (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i) i) (AddCommMonoid.toAddMonoid.{max u1 u3} ((fun (i : ι) => (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i) i) ((fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i) i) _x) (Dfinsupp.funLike.{u2, max u1 u3} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{max u1 u3} ((fun (i : ι) => (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i) i) (AddCommMonoid.toAddMonoid.{max u1 u3} ((fun (i : ι) => (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i) i) ((fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i))) i)) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (AddMonoidHom.{max u3 u1 u2, max (max u3 u1) u2} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (instAddCommMonoidDirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (instAddCommMonoidDirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)))))) (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (fun (_x : DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) => DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) _x) (AddHomClass.toFunLike.{max (max u3 u2) u1, max (max u3 u2) u1, max (max u3 u2) u1} (AddMonoidHom.{max u3 u1 u2, max (max u3 u1) u2} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (instAddCommMonoidDirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (instAddCommMonoidDirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)))))) (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddZeroClass.toAdd.{max (max u3 u2) u1} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (instAddCommMonoidDirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)))))) (AddZeroClass.toAdd.{max (max u3 u2) u1} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (instAddCommMonoidDirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u2) u1, max (max u3 u2) u1, max (max u3 u2) u1} (AddMonoidHom.{max u3 u1 u2, max (max u3 u1) u2} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (instAddCommMonoidDirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (instAddCommMonoidDirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)))))) (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (instAddCommMonoidDirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (instAddCommMonoidDirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))))) (AddMonoidHom.addMonoidHomClass.{max (max u3 u2) u1, max (max u3 u2) u1} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (instAddCommMonoidDirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (instAddCommMonoidDirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)))))))) (DirectSum.sigmaCurry.{u1, u2, u3} ι (fun (i : ι) => α i) δ _inst_3) f) i) j) (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (Dfinsupp.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i) i) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => AddMonoid.toZero.{u3} ((fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i) i) ((fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i))) i)) (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (_x : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i) i) _x) (Dfinsupp.funLike.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i) i) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => AddMonoid.toZero.{u3} ((fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i) i) ((fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i))) i)) f (Sigma.mk.{u2, u1} ι (fun (i : ι) => α i) i j))
+  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} {δ : forall (i : ι), (α i) -> Type.{u3}} [_inst_3 : forall (i : ι) (j : α i), AddCommMonoid.{u3} (δ i j)] (f : DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (i : ι) (j : α i), Eq.{succ u3} ((fun (i_1 : α i) => (fun (i_1 : α i) => (fun (j : α i) => δ i j) i_1) i_1) j) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (Dfinsupp.{u1, u3} (α i) (fun (i_1 : α i) => (fun (i_1 : α i) => (fun (j : α i) => δ i j) i_1) i_1) (fun (i_1 : α i) => (fun (i_1 : α i) => AddMonoid.toZero.{u3} ((fun (i_1 : α i) => (fun (j : α i) => δ i j) i_1) i_1) (AddCommMonoid.toAddMonoid.{u3} ((fun (i_1 : α i) => (fun (j : α i) => δ i j) i_1) i_1) ((fun (i_1 : α i) => _inst_3 i i_1) i_1))) i_1)) (α i) (fun (_x : α i) => (fun (i_1 : α i) => (fun (i_1 : α i) => (fun (j : α i) => δ i j) i_1) i_1) _x) (Dfinsupp.funLike.{u1, u3} (α i) (fun (j : α i) => (fun (i_1 : α i) => (fun (j : α i) => δ i j) i_1) j) (fun (i_1 : α i) => (fun (i_1 : α i) => AddMonoid.toZero.{u3} ((fun (i_1 : α i) => (fun (j : α i) => δ i j) i_1) i_1) (AddCommMonoid.toAddMonoid.{u3} ((fun (i_1 : α i) => (fun (j : α i) => δ i j) i_1) i_1) ((fun (i_1 : α i) => _inst_3 i i_1) i_1))) i_1)) (FunLike.coe.{max (succ u2) (succ (max u1 u3)), succ u2, succ (max u1 u3)} (Dfinsupp.{u2, max u1 u3} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{max u1 u3} ((fun (i : ι) => (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i) i) (AddCommMonoid.toAddMonoid.{max u1 u3} ((fun (i : ι) => (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i) i) ((fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i) i) _x) (Dfinsupp.funLike.{u2, max u1 u3} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{max u1 u3} ((fun (i : ι) => (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i) i) (AddCommMonoid.toAddMonoid.{max u1 u3} ((fun (i : ι) => (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i) i) ((fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i))) i)) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (AddMonoidHom.{max u3 u1 u2, max (max u3 u1) u2} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (instAddCommMonoidDirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (instAddCommMonoidDirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)))))) (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (fun (_x : DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) => DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) _x) (AddHomClass.toFunLike.{max (max u3 u2) u1, max (max u3 u2) u1, max (max u3 u2) u1} (AddMonoidHom.{max u3 u1 u2, max (max u3 u1) u2} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (instAddCommMonoidDirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (instAddCommMonoidDirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)))))) (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddZeroClass.toAdd.{max (max u3 u2) u1} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (instAddCommMonoidDirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)))))) (AddZeroClass.toAdd.{max (max u3 u2) u1} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (instAddCommMonoidDirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u2) u1, max (max u3 u2) u1, max (max u3 u2) u1} (AddMonoidHom.{max u3 u1 u2, max (max u3 u1) u2} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (instAddCommMonoidDirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (instAddCommMonoidDirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)))))) (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (instAddCommMonoidDirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (instAddCommMonoidDirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))))) (AddMonoidHom.addMonoidHomClass.{max (max u3 u2) u1, max (max u3 u2) u1} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (instAddCommMonoidDirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (instAddCommMonoidDirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)))))))) (DirectSum.sigmaCurry.{u1, u2, u3} ι (fun (i : ι) => α i) δ _inst_3) f) i) j) (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (Dfinsupp.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i) i) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => AddMonoid.toZero.{u3} ((fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i) i) ((fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i))) i)) (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (_x : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i) i) _x) (Dfinsupp.funLike.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i) i) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => AddMonoid.toZero.{u3} ((fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i) i) ((fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i))) i)) f (Sigma.mk.{u2, u1} ι (fun (i : ι) => α i) i j))
 Case conversion may be inaccurate. Consider using '#align direct_sum.sigma_curry_apply DirectSum.sigmaCurry_applyₓ'. -/
 @[simp]
 theorem sigmaCurry_apply (f : ⨁ i : Σi, _, δ i.1 i.2) (i : ι) (j : α i) :
@@ -501,7 +501,7 @@ def sigmaUncurry [∀ i, DecidableEq (α i)] [∀ i j, DecidableEq (δ i j)] :
 lean 3 declaration is
   forall {ι : Type.{u2}} {α : ι -> Type.{u1}} {δ : forall (i : ι), (α i) -> Type.{u3}} [_inst_3 : forall (i : ι) (j : α i), AddCommMonoid.{u3} (δ i j)] [_inst_4 : forall (i : ι), DecidableEq.{succ u1} (α i)] [_inst_5 : forall (i : ι) (j : α i), DecidableEq.{succ u3} (δ i j)] (f : DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (i : ι) (j : α i), Eq.{succ u3} (δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) (Sigma.mk.{u2, u1} ι (fun (i : ι) => α i) i j)) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) (Sigma.mk.{u2, u1} ι (fun (i : ι) => α i) i j))) (coeFn.{succ (max (max u2 u1) u3), max (succ (max u2 u1)) (succ u3)} (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (fun (_x : DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) => forall (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)), δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (DirectSum.hasCoeToFun.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (coeFn.{max (succ (max (max u2 u1) u3)) (succ (max u2 u1 u3)), max (succ (max u2 u1 u3)) (succ (max (max u2 u1) u3))} (AddMonoidHom.{max u2 u1 u3, max (max u2 u1) u3} (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (AddMonoid.toAddZeroClass.{max u2 u1 u3} (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max u2 u1 u3} (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (DirectSum.addCommMonoid.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))))) (AddMonoid.toAddZeroClass.{max (max u2 u1) u3} (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (AddCommMonoid.toAddMonoid.{max (max u2 u1) u3} (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (DirectSum.addCommMonoid.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)))))) (fun (_x : AddMonoidHom.{max u2 u1 u3, max (max u2 u1) u3} (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (AddMonoid.toAddZeroClass.{max u2 u1 u3} (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max u2 u1 u3} (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (DirectSum.addCommMonoid.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))))) (AddMonoid.toAddZeroClass.{max (max u2 u1) u3} (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (AddCommMonoid.toAddMonoid.{max (max u2 u1) u3} (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (DirectSum.addCommMonoid.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)))))) => (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) -> (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)))) (AddMonoidHom.hasCoeToFun.{max u2 u1 u3, max (max u2 u1) u3} (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (AddMonoid.toAddZeroClass.{max u2 u1 u3} (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max u2 u1 u3} (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (DirectSum.addCommMonoid.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))))) (AddMonoid.toAddZeroClass.{max (max u2 u1) u3} (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (AddCommMonoid.toAddMonoid.{max (max u2 u1) u3} (DirectSum.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (DirectSum.addCommMonoid.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)))))) (DirectSum.sigmaUncurry.{u1, u2, u3} ι (fun (i : ι) => α i) (fun (i : ι) (j : α i) => δ i j) (fun (i : ι) (i_1 : α i) => _inst_3 i i_1) (fun (i : ι) (a : α i) (b : α i) => _inst_4 i a b) (fun (i : ι) (j : α i) (a : δ i j) (b : δ i j) => _inst_5 i j a b)) f) (Sigma.mk.{u2, u1} ι (fun (i : ι) => α i) i j)) (coeFn.{succ (max u1 u3), max (succ u1) (succ u3)} (DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (_x : DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) => forall (i_1 : α i), δ i i_1) (DirectSum.hasCoeToFun.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (coeFn.{succ (max u2 u1 u3), max (succ u2) (succ (max u1 u3))} (DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (fun (_x : DirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) => forall (i : ι), DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (DirectSum.hasCoeToFun.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => DirectSum.addCommMonoid.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) f i) j)
 but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} {δ : forall (i : ι), (α i) -> Type.{u3}} [_inst_3 : forall (i : ι) (j : α i), AddCommMonoid.{u3} (δ i j)] [_inst_4 : forall (i : ι), DecidableEq.{succ u1} (α i)] [_inst_5 : forall (i : ι) (j : α i), DecidableEq.{succ u3} (δ i j)] (f : DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (i : ι) (j : α i), Eq.{succ u3} ((fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i) i) (Sigma.mk.{u2, u1} ι (fun (_i : ι) => α _i) i j)) (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (Dfinsupp.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i) i) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => AddMonoid.toZero.{u3} ((fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i) i) ((fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i))) i)) (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (_x : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i) i) _x) (Dfinsupp.funLike.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i) i) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => AddMonoid.toZero.{u3} ((fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i) i) ((fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i))) i)) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (AddMonoidHom.{max (max u3 u1) u2, max u3 u1 u2} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (instAddCommMonoidDirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (instAddCommMonoidDirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)))))) (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (fun (_x : DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) => DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) _x) (AddHomClass.toFunLike.{max (max u3 u2) u1, max (max u3 u2) u1, max (max u3 u2) u1} (AddMonoidHom.{max (max u3 u1) u2, max u3 u1 u2} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (instAddCommMonoidDirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (instAddCommMonoidDirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)))))) (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddZeroClass.toAdd.{max (max u3 u2) u1} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (instAddCommMonoidDirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)))))) (AddZeroClass.toAdd.{max (max u3 u2) u1} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (instAddCommMonoidDirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u2) u1, max (max u3 u2) u1, max (max u3 u2) u1} (AddMonoidHom.{max (max u3 u1) u2, max u3 u1 u2} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (instAddCommMonoidDirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (instAddCommMonoidDirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)))))) (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (instAddCommMonoidDirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (instAddCommMonoidDirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))))) (AddMonoidHom.addMonoidHomClass.{max (max u3 u2) u1, max (max u3 u2) u1} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (instAddCommMonoidDirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (instAddCommMonoidDirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)))))))) (DirectSum.sigmaUncurry.{u1, u2, u3} ι (fun (i : ι) => α i) (fun (i : ι) (j : α i) => δ i j) (fun (i : ι) (i_1 : α i) => _inst_3 i i_1) (fun (i : ι) (a : α i) (b : α i) => _inst_4 i a b) (fun (i : ι) (j : α i) (a : δ i j) (b : δ i j) => _inst_5 i j a b)) f) (Sigma.mk.{u2, u1} ι (fun (i : ι) => α i) i j)) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (Dfinsupp.{u1, u3} (α i) (fun (i_1 : α i) => (fun (i_1 : α i) => (fun (j : α i) => δ i j) i_1) i_1) (fun (i_1 : α i) => (fun (i_1 : α i) => AddMonoid.toZero.{u3} ((fun (i_1 : α i) => (fun (j : α i) => δ i j) i_1) i_1) (AddCommMonoid.toAddMonoid.{u3} ((fun (i_1 : α i) => (fun (j : α i) => δ i j) i_1) i_1) ((fun (i_1 : α i) => _inst_3 i i_1) i_1))) i_1)) (α i) (fun (_x : α i) => (fun (i_1 : α i) => (fun (i_1 : α i) => (fun (j : α i) => δ i j) i_1) i_1) _x) (Dfinsupp.funLike.{u1, u3} (α i) (fun (j : α i) => (fun (i_1 : α i) => (fun (j : α i) => δ i j) i_1) j) (fun (i_1 : α i) => (fun (i_1 : α i) => AddMonoid.toZero.{u3} ((fun (i_1 : α i) => (fun (j : α i) => δ i j) i_1) i_1) (AddCommMonoid.toAddMonoid.{u3} ((fun (i_1 : α i) => (fun (j : α i) => δ i j) i_1) i_1) ((fun (i_1 : α i) => _inst_3 i i_1) i_1))) i_1)) (FunLike.coe.{max (succ u2) (succ (max u1 u3)), succ u2, succ (max u1 u3)} (Dfinsupp.{u2, max u1 u3} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{max u1 u3} ((fun (i : ι) => (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i) i) (AddCommMonoid.toAddMonoid.{max u1 u3} ((fun (i : ι) => (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i) i) ((fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i) i) _x) (Dfinsupp.funLike.{u2, max u1 u3} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{max u1 u3} ((fun (i : ι) => (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i) i) (AddCommMonoid.toAddMonoid.{max u1 u3} ((fun (i : ι) => (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i) i) ((fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i))) i)) f i) j)
+  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} {δ : forall (i : ι), (α i) -> Type.{u3}} [_inst_3 : forall (i : ι) (j : α i), AddCommMonoid.{u3} (δ i j)] [_inst_4 : forall (i : ι), DecidableEq.{succ u1} (α i)] [_inst_5 : forall (i : ι) (j : α i), DecidableEq.{succ u3} (δ i j)] (f : DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (i : ι) (j : α i), Eq.{succ u3} ((fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i) i) (Sigma.mk.{u2, u1} ι (fun (_i : ι) => α _i) i j)) (FunLike.coe.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2), succ u3} (Dfinsupp.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i) i) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => AddMonoid.toZero.{u3} ((fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i) i) ((fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i))) i)) (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (_x : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i) i) _x) (Dfinsupp.funLike.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i) i) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => AddMonoid.toZero.{u3} ((fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i) i) ((fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) i))) i)) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (AddMonoidHom.{max (max u3 u1) u2, max u3 u1 u2} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (instAddCommMonoidDirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (instAddCommMonoidDirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)))))) (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (fun (_x : DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) => DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) _x) (AddHomClass.toFunLike.{max (max u3 u2) u1, max (max u3 u2) u1, max (max u3 u2) u1} (AddMonoidHom.{max (max u3 u1) u2, max u3 u1 u2} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (instAddCommMonoidDirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (instAddCommMonoidDirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)))))) (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddZeroClass.toAdd.{max (max u3 u2) u1} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (instAddCommMonoidDirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)))))) (AddZeroClass.toAdd.{max (max u3 u2) u1} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (instAddCommMonoidDirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u2) u1, max (max u3 u2) u1, max (max u3 u2) u1} (AddMonoidHom.{max (max u3 u1) u2, max u3 u1 u2} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (instAddCommMonoidDirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (instAddCommMonoidDirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)))))) (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (instAddCommMonoidDirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (instAddCommMonoidDirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))))) (AddMonoidHom.addMonoidHomClass.{max (max u3 u2) u1, max (max u3 u2) u1} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{u2, max u3 u1} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (instAddCommMonoidDirectSum.{u2, max u1 u3} ι (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (DirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i))) (instAddCommMonoidDirectSum.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => δ (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)) (fun (i : Sigma.{u2, u1} ι (fun (_i : ι) => α _i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (_i : ι) => α _i) i) (Sigma.snd.{u2, u1} ι (fun (_i : ι) => α _i) i)))))))) (DirectSum.sigmaUncurry.{u1, u2, u3} ι (fun (i : ι) => α i) (fun (i : ι) (j : α i) => δ i j) (fun (i : ι) (i_1 : α i) => _inst_3 i i_1) (fun (i : ι) (a : α i) (b : α i) => _inst_4 i a b) (fun (i : ι) (j : α i) (a : δ i j) (b : δ i j) => _inst_5 i j a b)) f) (Sigma.mk.{u2, u1} ι (fun (i : ι) => α i) i j)) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (Dfinsupp.{u1, u3} (α i) (fun (i_1 : α i) => (fun (i_1 : α i) => (fun (j : α i) => δ i j) i_1) i_1) (fun (i_1 : α i) => (fun (i_1 : α i) => AddMonoid.toZero.{u3} ((fun (i_1 : α i) => (fun (j : α i) => δ i j) i_1) i_1) (AddCommMonoid.toAddMonoid.{u3} ((fun (i_1 : α i) => (fun (j : α i) => δ i j) i_1) i_1) ((fun (i_1 : α i) => _inst_3 i i_1) i_1))) i_1)) (α i) (fun (_x : α i) => (fun (i_1 : α i) => (fun (i_1 : α i) => (fun (j : α i) => δ i j) i_1) i_1) _x) (Dfinsupp.funLike.{u1, u3} (α i) (fun (j : α i) => (fun (i_1 : α i) => (fun (j : α i) => δ i j) i_1) j) (fun (i_1 : α i) => (fun (i_1 : α i) => AddMonoid.toZero.{u3} ((fun (i_1 : α i) => (fun (j : α i) => δ i j) i_1) i_1) (AddCommMonoid.toAddMonoid.{u3} ((fun (i_1 : α i) => (fun (j : α i) => δ i j) i_1) i_1) ((fun (i_1 : α i) => _inst_3 i i_1) i_1))) i_1)) (FunLike.coe.{max (succ u2) (succ (max u1 u3)), succ u2, succ (max u1 u3)} (Dfinsupp.{u2, max u1 u3} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{max u1 u3} ((fun (i : ι) => (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i) i) (AddCommMonoid.toAddMonoid.{max u1 u3} ((fun (i : ι) => (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i) i) ((fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i) i) _x) (Dfinsupp.funLike.{u2, max u1 u3} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{max u1 u3} ((fun (i : ι) => (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i) i) (AddCommMonoid.toAddMonoid.{max u1 u3} ((fun (i : ι) => (fun (i : ι) => DirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i) i) ((fun (i : ι) => instAddCommMonoidDirectSum.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) i))) i)) f i) j)
 Case conversion may be inaccurate. Consider using '#align direct_sum.sigma_uncurry_apply DirectSum.sigmaUncurry_applyₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 @[simp]
@@ -544,7 +544,7 @@ protected def coeAddMonoidHom {M S : Type _} [DecidableEq ι] [AddCommMonoid M]
 lean 3 declaration is
   forall {ι : Type.{u1}} {M : Type.{u2}} {S : Type.{u3}} [_inst_3 : DecidableEq.{succ u1} ι] [_inst_4 : AddCommMonoid.{u2} M] [_inst_5 : SetLike.{u3, u2} S M] [_inst_6 : AddSubmonoidClass.{u3, u2} S M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4)) _inst_5] (A : ι -> S) (i : ι) (x : coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)), Eq.{succ u2} M (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u2)} (AddMonoidHom.{max u1 u2, u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))) M (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))))) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4))) (fun (_x : AddMonoidHom.{max u1 u2, u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))) M (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))))) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4))) => (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))) -> M) (AddMonoidHom.hasCoeToFun.{max u1 u2, u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))) M (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))))) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4))) (DirectSum.coeAddMonoidHom.{u1, u2, u3} ι M S (fun (a : ι) (b : ι) => _inst_3 a b) _inst_4 _inst_5 _inst_6 A) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) i) (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i)) i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) i) ((fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i)) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i)) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i)) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i)) i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) i) (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i)) i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) i) ((fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i)) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i)) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i)) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i)) i))))) => (coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) -> (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i)) i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) i) (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i)) i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) i) ((fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i)) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i)) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i)) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i)) i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_3 a b) (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i)) i) x)) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) M (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) M (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) M (coeBase.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) M (coeSubtype.{succ u2} M (fun (x : M) => Membership.Mem.{u2, u3} M S (SetLike.hasMem.{u3, u2} S M _inst_5) x (A i)))))) x)
 but is expected to have type
-  forall {ι : Type.{u3}} {M : Type.{u2}} {S : Type.{u1}} [_inst_3 : DecidableEq.{succ u3} ι] [_inst_4 : AddCommMonoid.{u2} M] [_inst_5 : SetLike.{u1, u2} S M] [_inst_6 : AddSubmonoidClass.{u1, u2} S M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4)) _inst_5] (A : ι -> S) (i : ι) (x : Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) => M) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (AddMonoidHom.{u2, max u2 u3} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))))) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (a : Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) a) (AddHomClass.toFunLike.{max u3 u2, u2, max u3 u2} (AddMonoidHom.{u2, max u2 u3} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))))) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddZeroClass.toAdd.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))))) (AddZeroClass.toAdd.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u2, max u3 u2} (AddMonoidHom.{u2, max u2 u3} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))))) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))))) (AddMonoidHom.addMonoidHomClass.{u2, max u3 u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))))))) (DirectSum.of.{u3, u2} ι (fun (a : ι) (b : ι) => _inst_3 a b) (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)) i) x)) (FunLike.coe.{max (succ u3) (succ u2), max (succ u3) (succ u2), succ u2} (AddMonoidHom.{max u2 u3, u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) M (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))))) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (fun (_x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) => M) _x) (AddHomClass.toFunLike.{max u3 u2, max u3 u2, u2} (AddMonoidHom.{max u2 u3, u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) M (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))))) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) M (AddZeroClass.toAdd.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))))) (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, max u3 u2, u2} (AddMonoidHom.{max u2 u3, u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) M (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))))) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) M (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))))) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4)) (AddMonoidHom.addMonoidHomClass.{max u3 u2, u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) M (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))))) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4))))) (DirectSum.coeAddMonoidHom.{u3, u2, u1} ι M S (fun (a : ι) (b : ι) => _inst_3 a b) _inst_4 _inst_5 _inst_6 A) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (AddMonoidHom.{u2, max u2 u3} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))))) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (_x : Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) _x) (AddHomClass.toFunLike.{max u3 u2, u2, max u3 u2} (AddMonoidHom.{u2, max u2 u3} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))))) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddZeroClass.toAdd.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))))) (AddZeroClass.toAdd.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u2, max u3 u2} (AddMonoidHom.{u2, max u2 u3} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))))) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))))) (AddMonoidHom.addMonoidHomClass.{u2, max u3 u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))))))) (DirectSum.of.{u3, u2} ι (fun (a : ι) (b : ι) => _inst_3 a b) (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)) i) x)) (Subtype.val.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Set.{u2} M) (Set.instMembershipSet.{u2} M) x (SetLike.coe.{u1, u2} S M _inst_5 (A i))) x)
+  forall {ι : Type.{u3}} {M : Type.{u2}} {S : Type.{u1}} [_inst_3 : DecidableEq.{succ u3} ι] [_inst_4 : AddCommMonoid.{u2} M] [_inst_5 : SetLike.{u1, u2} S M] [_inst_6 : AddSubmonoidClass.{u1, u2} S M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4)) _inst_5] (A : ι -> S) (i : ι) (x : Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) => M) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (AddMonoidHom.{u2, max u2 u3} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))))) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (a : Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) a) (AddHomClass.toFunLike.{max u3 u2, u2, max u3 u2} (AddMonoidHom.{u2, max u2 u3} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))))) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddZeroClass.toAdd.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))))) (AddZeroClass.toAdd.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u2, max u3 u2} (AddMonoidHom.{u2, max u2 u3} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))))) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))))) (AddMonoidHom.addMonoidHomClass.{u2, max u3 u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))))))) (DirectSum.of.{u3, u2} ι (fun (a : ι) (b : ι) => _inst_3 a b) (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)) i) x)) (FunLike.coe.{max (succ u3) (succ u2), max (succ u3) (succ u2), succ u2} (AddMonoidHom.{max u2 u3, u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) M (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))))) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (fun (_x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) => M) _x) (AddHomClass.toFunLike.{max u3 u2, max u3 u2, u2} (AddMonoidHom.{max u2 u3, u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) M (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))))) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) M (AddZeroClass.toAdd.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))))) (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, max u3 u2, u2} (AddMonoidHom.{max u2 u3, u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) M (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))))) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) M (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))))) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4)) (AddMonoidHom.addMonoidHomClass.{max u3 u2, u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) M (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))))) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4))))) (DirectSum.coeAddMonoidHom.{u3, u2, u1} ι M S (fun (a : ι) (b : ι) => _inst_3 a b) _inst_4 _inst_5 _inst_6 A) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (AddMonoidHom.{u2, max u2 u3} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))))) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (_x : Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) _x) (AddHomClass.toFunLike.{max u3 u2, u2, max u3 u2} (AddMonoidHom.{u2, max u2 u3} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))))) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddZeroClass.toAdd.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))))) (AddZeroClass.toAdd.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u2, max u3 u2} (AddMonoidHom.{u2, max u2 u3} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))))) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))))) (AddMonoidHom.addMonoidHomClass.{u2, max u3 u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))))))) (DirectSum.of.{u3, u2} ι (fun (a : ι) (b : ι) => _inst_3 a b) (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)) i) x)) (Subtype.val.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Set.{u2} M) (Set.instMembershipSet.{u2} M) x (SetLike.coe.{u1, u2} S M _inst_5 (A i))) x)
 Case conversion may be inaccurate. Consider using '#align direct_sum.coe_add_monoid_hom_of DirectSum.coeAddMonoidHom_ofₓ'. -/
 @[simp]
 theorem coeAddMonoidHom_of {M S : Type _} [DecidableEq ι] [AddCommMonoid M] [SetLike S M]
@@ -557,7 +557,7 @@ theorem coeAddMonoidHom_of {M S : Type _} [DecidableEq ι] [AddCommMonoid M] [Se
 lean 3 declaration is
   forall {ι : Type.{u1}} {M : Type.{u2}} {S : Type.{u3}} [_inst_3 : DecidableEq.{succ u1} ι] [_inst_4 : AddCommMonoid.{u2} M] [_inst_5 : SetLike.{u3, u2} S M] [_inst_6 : AddSubmonoidClass.{u3, u2} S M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4)) _inst_5] {A : ι -> S} (i : ι) (j : ι) (x : coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)), Eq.{succ u2} M ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A j)) M (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A j)) M (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A j)) M (coeBase.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A j)) M (coeSubtype.{succ u2} M (fun (x : M) => Membership.Mem.{u2, u3} M S (SetLike.hasMem.{u3, u2} S M _inst_5) x (A j)))))) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))) (fun (_x : DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))) => forall (i : ι), coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (DirectSum.hasCoeToFun.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{u2} (coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (AddCommMonoid.toAddMonoid.{u2} (coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i)))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{u2} (coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (AddCommMonoid.toAddMonoid.{u2} (coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i)))))) => (coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{u2} (coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (AddCommMonoid.toAddMonoid.{u2} (coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i)))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_3 a b) (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_4 S _inst_5 _inst_6 (A i)) i) x) j)) (ite.{succ u2} M (Eq.{succ u1} ι i j) (_inst_3 i j) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) M (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) M (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) M (coeBase.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} S Type.{u2} (SetLike.hasCoeToSort.{u3, u2} S M _inst_5) (A i)) M (coeSubtype.{succ u2} M (fun (x : M) => Membership.Mem.{u2, u3} M S (SetLike.hasMem.{u3, u2} S M _inst_5) x (A i)))))) x) (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4)))))))
 but is expected to have type
-  forall {ι : Type.{u3}} {M : Type.{u2}} {S : Type.{u1}} [_inst_3 : DecidableEq.{succ u3} ι] [_inst_4 : AddCommMonoid.{u2} M] [_inst_5 : SetLike.{u1, u2} S M] [_inst_6 : AddSubmonoidClass.{u1, u2} S M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4)) _inst_5] {A : ι -> S} (i : ι) (j : ι) (x : Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))), Eq.{succ u2} M (Subtype.val.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Set.{u2} M) (Set.instMembershipSet.{u2} M) x (SetLike.coe.{u1, u2} S M _inst_5 (A j))) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (Dfinsupp.{u3, u2} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) i) i) ((fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)) i))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) i) i) _x) (Dfinsupp.funLike.{u3, u2} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) i) i) ((fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)) i))) i)) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (AddMonoidHom.{u2, max u2 u3} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))))) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (_x : Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) _x) (AddHomClass.toFunLike.{max u3 u2, u2, max u3 u2} (AddMonoidHom.{u2, max u2 u3} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))))) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddZeroClass.toAdd.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))))) (AddZeroClass.toAdd.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u2, max u3 u2} (AddMonoidHom.{u2, max u2 u3} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))))) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))))) (AddMonoidHom.addMonoidHomClass.{u2, max u3 u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))))))) (DirectSum.of.{u3, u2} ι (fun (a : ι) (b : ι) => _inst_3 a b) (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)) i) x) j)) (Subtype.val.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Set.{u2} M) (Set.instMembershipSet.{u2} M) x (SetLike.coe.{u1, u2} S M _inst_5 (A i))) (ite.{succ u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (Eq.{succ u3} ι i j) (_inst_3 i j) x (OfNat.ofNat.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) 0 (Zero.toOfNat0.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (ZeroMemClass.zero.{u1, u2} S M _inst_5 (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4)) (AddSubmonoidClass.toZeroMemClass.{u1, u2} S M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4)) _inst_5 _inst_6) (A i))))))
+  forall {ι : Type.{u3}} {M : Type.{u2}} {S : Type.{u1}} [_inst_3 : DecidableEq.{succ u3} ι] [_inst_4 : AddCommMonoid.{u2} M] [_inst_5 : SetLike.{u1, u2} S M] [_inst_6 : AddSubmonoidClass.{u1, u2} S M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4)) _inst_5] {A : ι -> S} (i : ι) (j : ι) (x : Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))), Eq.{succ u2} M (Subtype.val.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Set.{u2} M) (Set.instMembershipSet.{u2} M) x (SetLike.coe.{u1, u2} S M _inst_5 (A j))) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (Dfinsupp.{u3, u2} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) i) i) ((fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)) i))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) i) i) _x) (Dfinsupp.funLike.{u3, u2} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) i) i) ((fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)) i))) i)) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (AddMonoidHom.{u2, max u2 u3} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))))) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (_x : Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) _x) (AddHomClass.toFunLike.{max u3 u2, u2, max u3 u2} (AddMonoidHom.{u2, max u2 u3} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))))) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddZeroClass.toAdd.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))))) (AddZeroClass.toAdd.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u2, max u3 u2} (AddMonoidHom.{u2, max u2 u3} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))))) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))))) (AddMonoidHom.addMonoidHomClass.{u2, max u3 u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddCommMonoid.toAddMonoid.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)))))))) (DirectSum.of.{u3, u2} ι (fun (a : ι) (b : ι) => _inst_3 a b) (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_4 S _inst_5 _inst_6 (A i)) i) x) j)) (Subtype.val.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Set.{u2} M) (Set.instMembershipSet.{u2} M) x (SetLike.coe.{u1, u2} S M _inst_5 (A i))) (ite.{succ u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (Eq.{succ u3} ι i j) (_inst_3 i j) x (OfNat.ofNat.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) 0 (Zero.toOfNat0.{u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M S (SetLike.instMembership.{u1, u2} S M _inst_5) x (A i))) (ZeroMemClass.zero.{u1, u2} S M _inst_5 (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4)) (AddSubmonoidClass.toZeroMemClass.{u1, u2} S M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_4)) _inst_5 _inst_6) (A i))))))
 Case conversion may be inaccurate. Consider using '#align direct_sum.coe_of_apply DirectSum.coe_of_applyₓ'. -/
 theorem coe_of_apply {M S : Type _} [DecidableEq ι] [AddCommMonoid M] [SetLike S M]
     [AddSubmonoidClass S M] {A : ι → S} (i j : ι) (x : A i) :

Changes in mathlib4

mathlib3
mathlib4
style: replace '.-/' by '. -/' (#11938)

Purely automatic replacement. If this is in any way controversial; I'm happy to just close this PR.

Diff
@@ -282,7 +282,7 @@ section CongrLeft
 
 variable {κ : Type*}
 
-/-- Reindexing terms of a direct sum.-/
+/-- Reindexing terms of a direct sum. -/
 def equivCongrLeft (h : ι ≃ κ) : (⨁ i, β i) ≃+ ⨁ k, β (h.symm k) :=
   { DFinsupp.equivCongrLeft h with map_add' := DFinsupp.comapDomain'_add _ h.right_inv}
 #align direct_sum.equiv_congr_left DirectSum.equivCongrLeft
@@ -299,7 +299,7 @@ section Option
 
 variable {α : Option ι → Type w} [∀ i, AddCommMonoid (α i)]
 
-/-- Isomorphism obtained by separating the term of index `none` of a direct sum over `Option ι`.-/
+/-- Isomorphism obtained by separating the term of index `none` of a direct sum over `Option ι`. -/
 @[simps!]
 noncomputable def addEquivProdDirectSum : (⨁ i, α i) ≃+ α none × ⨁ i, α (some i) :=
   { DFinsupp.equivProdDFinsupp with map_add' := DFinsupp.equivProdDFinsupp_add }
@@ -311,7 +311,7 @@ section Sigma
 
 variable {α : ι → Type u} {δ : ∀ i, α i → Type w} [∀ i j, AddCommMonoid (δ i j)]
 
-/-- The natural map between `⨁ (i : Σ i, α i), δ i.1 i.2` and `⨁ i (j : α i), δ i j`.-/
+/-- The natural map between `⨁ (i : Σ i, α i), δ i.1 i.2` and `⨁ i (j : α i), δ i j`. -/
 def sigmaCurry : (⨁ i : Σ _i, _, δ i.1 i.2) →+ ⨁ (i) (j), δ i j
     where
   toFun := DFinsupp.sigmaCurry (δ := δ)
@@ -326,7 +326,7 @@ theorem sigmaCurry_apply (f : ⨁ i : Σ _i, _, δ i.1 i.2) (i : ι) (j : α i)
 #align direct_sum.sigma_curry_apply DirectSum.sigmaCurry_apply
 
 /-- The natural map between `⨁ i (j : α i), δ i j` and `Π₀ (i : Σ i, α i), δ i.1 i.2`, inverse of
-`curry`.-/
+`curry`. -/
 def sigmaUncurry [∀ i, DecidableEq (α i)] [∀ i j, DecidableEq (δ i j)] :
     (⨁ (i) (j), δ i j) →+ ⨁ i : Σ _i, _, δ i.1 i.2
     where
@@ -341,7 +341,7 @@ theorem sigmaUncurry_apply [∀ i, DecidableEq (α i)] [∀ i j, DecidableEq (δ
   DFinsupp.sigmaUncurry_apply f i j
 #align direct_sum.sigma_uncurry_apply DirectSum.sigmaUncurry_apply
 
-/-- The natural map between `⨁ (i : Σ i, α i), δ i.1 i.2` and `⨁ i (j : α i), δ i j`.-/
+/-- The natural map between `⨁ (i : Σ i, α i), δ i.1 i.2` and `⨁ i (j : α i), δ i j`. -/
 def sigmaCurryEquiv [∀ i, DecidableEq (α i)] [∀ i j, DecidableEq (δ i j)] :
     (⨁ i : Σ _i, _, δ i.1 i.2) ≃+ ⨁ (i) (j), δ i j :=
   { sigmaCurry, DFinsupp.sigmaCurryEquiv with }
chore: classify added instance porting notes (#10925)

Classifies by adding issue number (#10754) to porting notes claiming added instance.

Diff
@@ -40,11 +40,11 @@ def DirectSum [∀ i, AddCommMonoid (β i)] : Type _ :=
   Π₀ i, β i
 #align direct_sum DirectSum
 
--- Porting note: Added inhabited instance manually
+-- Porting note (#10754): Added inhabited instance manually
 instance [∀ i, AddCommMonoid (β i)] : Inhabited (DirectSum ι β) :=
   inferInstanceAs (Inhabited (Π₀ i, β i))
 
--- Porting note: Added addCommMonoid instance manually
+-- Porting note (#10754): Added addCommMonoid instance manually
 instance [∀ i, AddCommMonoid (β i)] : AddCommMonoid (DirectSum ι β) :=
   inferInstanceAs (AddCommMonoid (Π₀ i, β i))
 
feat: add lemma LinearMap.trace_restrict_eq_sum_trace_restrict (#10638)
Diff
@@ -378,7 +378,7 @@ theorem coe_of_apply {M S : Type*} [DecidableEq ι] [AddCommMonoid M] [SetLike S
 
 For the alternate statement in terms of independence and spanning, see
 `DirectSum.subgroup_isInternal_iff_independent_and_supr_eq_top` and
-`DirectSum.isInternalSubmodule_iff_independent_and_supr_eq_top`. -/
+`DirectSum.isInternal_submodule_iff_independent_and_iSup_eq_top`. -/
 def IsInternal {M S : Type*} [DecidableEq ι] [AddCommMonoid M] [SetLike S M]
     [AddSubmonoidClass S M] (A : ι → S) : Prop :=
   Function.Bijective (DirectSum.coeAddMonoidHom A)
docstring(Algebra/DirectSum/Basic): correct docstring (#10715)

The docstring for docs#DirectSum indicated DirectSum β instead of DirectSum ι β.

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

Diff
@@ -30,9 +30,9 @@ universe u v w u₁
 
 variable (ι : Type v) [dec_ι : DecidableEq ι] (β : ι → Type w)
 
-/-- `DirectSum β` is the direct sum of a family of additive commutative monoids `β i`.
+/-- `DirectSum ι β` is the direct sum of a family of additive commutative monoids `β i`.
 
-Note: `open DirectSum` will enable the notation `⨁ i, β i` for `DirectSum β`. -/
+Note: `open DirectSum` will enable the notation `⨁ i, β i` for `DirectSum ι β`. -/
 def DirectSum [∀ i, AddCommMonoid (β i)] : Type _ :=
   -- Porting note: Failed to synthesize
   -- Π₀ i, β i deriving AddCommMonoid, Inhabited
chore: remove useless include and omit porting notes (#10503)
Diff
@@ -104,9 +104,6 @@ theorem add_apply (g₁ g₂ : ⨁ i, β i) (i : ι) : (g₁ + g₂) i = g₁ i
 
 variable (β)
 
--- Porting note: commented out
--- include dec_ι
-
 /-- `mk β s x` is the element of `⨁ i, β i` that is zero outside `s`
 and has coefficient `x i` for `i` in `s`. -/
 def mk (s : Finset ι) : (∀ i : (↑s : Set ι), β i.1) →+ ⨁ i, β i
@@ -256,9 +253,6 @@ def setToSet (S T : Set ι) (H : S ⊆ T) : (⨁ i : S, β i) →+ ⨁ i : T, β
 
 variable {β}
 
--- Porting note: commented out
--- omit dec_ι
-
 instance unique [∀ i, Subsingleton (β i)] : Unique (⨁ i, β i) :=
   DFinsupp.unique
 #align direct_sum.unique DirectSum.unique
@@ -305,9 +299,6 @@ section Option
 
 variable {α : Option ι → Type w} [∀ i, AddCommMonoid (α i)]
 
--- Porting note: commented out
--- include dec_ι
-
 /-- Isomorphism obtained by separating the term of index `none` of a direct sum over `Option ι`.-/
 @[simps!]
 noncomputable def addEquivProdDirectSum : (⨁ i, α i) ≃+ α none × ⨁ i, α (some i) :=
chore: move to v4.6.0-rc1, merging adaptations from bump/v4.6.0 (#10176)

Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Joachim Breitner <mail@joachim-breitner.de>

Diff
@@ -309,7 +309,7 @@ variable {α : Option ι → Type w} [∀ i, AddCommMonoid (α i)]
 -- include dec_ι
 
 /-- Isomorphism obtained by separating the term of index `none` of a direct sum over `Option ι`.-/
-@[simps]
+@[simps!]
 noncomputable def addEquivProdDirectSum : (⨁ i, α i) ≃+ α none × ⨁ i, α (some i) :=
   { DFinsupp.equivProdDFinsupp with map_add' := DFinsupp.equivProdDFinsupp_add }
 #align direct_sum.add_equiv_prod_direct_sum DirectSum.addEquivProdDirectSum
chore(*): rename FunLike to DFunLike (#9785)

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

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

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

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

Diff
@@ -48,8 +48,8 @@ instance [∀ i, AddCommMonoid (β i)] : Inhabited (DirectSum ι β) :=
 instance [∀ i, AddCommMonoid (β i)] : AddCommMonoid (DirectSum ι β) :=
   inferInstanceAs (AddCommMonoid (Π₀ i, β i))
 
-instance [∀ i, AddCommMonoid (β i)] : FunLike (DirectSum ι β) _ fun i : ι => β i :=
-  inferInstanceAs (FunLike (Π₀ i, β i) _ _)
+instance [∀ i, AddCommMonoid (β i)] : DFunLike (DirectSum ι β) _ fun i : ι => β i :=
+  inferInstanceAs (DFunLike (Π₀ i, β i) _ _)
 
 instance [∀ i, AddCommMonoid (β i)] : CoeFun (DirectSum ι β) fun _ => ∀ i : ι, β i :=
   inferInstanceAs (CoeFun (Π₀ i, β i) fun _ => ∀ i : ι, β i)
@@ -184,7 +184,7 @@ See note [partially-applied ext lemmas]. -/
 @[ext high]
 theorem addHom_ext' {γ : Type*} [AddMonoid γ] ⦃f g : (⨁ i, β i) →+ γ⦄
     (H : ∀ i : ι, f.comp (of _ i) = g.comp (of _ i)) : f = g :=
-  addHom_ext fun i => FunLike.congr_fun <| H i
+  addHom_ext fun i => DFunLike.congr_fun <| H i
 #align direct_sum.add_hom_ext' DirectSum.addHom_ext'
 
 variable {γ : Type u₁} [AddCommMonoid γ]
feat: DirectSum.toAddMonoid is injective (#9385)

From LeanAPAP

Diff
@@ -23,7 +23,8 @@ This notation is in the `DirectSum` locale, accessible after `open DirectSum`.
 * https://en.wikipedia.org/wiki/Direct_sum
 -/
 
-open BigOperators
+open Function
+open scoped BigOperators
 
 universe u v w u₁
 
@@ -213,6 +214,12 @@ theorem toAddMonoid.unique (f : ⨁ i, β i) : ψ f = toAddMonoid (fun i => ψ.c
   simp [toAddMonoid, of]
 #align direct_sum.to_add_monoid.unique DirectSum.toAddMonoid.unique
 
+lemma toAddMonoid_injective : Injective (toAddMonoid : (∀ i, β i →+ γ) → (⨁ i, β i) →+ γ) :=
+  DFinsupp.liftAddHom.injective
+
+@[simp] lemma toAddMonoid_inj {f g : ∀ i, β i →+ γ} : toAddMonoid f = toAddMonoid g ↔ f = g :=
+  toAddMonoid_injective.eq_iff
+
 end ToAddMonoid
 
 section FromAddMonoid
feat: enable scoped[ns] prefix for notation3 (#8096)
Diff
@@ -53,11 +53,9 @@ instance [∀ i, AddCommMonoid (β i)] : FunLike (DirectSum ι β) _ fun i : ι
 instance [∀ i, AddCommMonoid (β i)] : CoeFun (DirectSum ι β) fun _ => ∀ i : ι, β i :=
   inferInstanceAs (CoeFun (Π₀ i, β i) fun _ => ∀ i : ι, β i)
 
--- Porting note: scoped does not work with notation3; TODO rewrite as lean4 notation?
--- scoped[DirectSum]
 /-- `⨁ i, f i` is notation for `DirectSum _ f` and equals the direct sum of `fun i ↦ f i`.
 Taking the direct sum over multiple arguments is possible, e.g. `⨁ (i) (j), f i j`. -/
-notation3 "⨁ "(...)", "r:(scoped f => DirectSum _ f) => r
+scoped[DirectSum] notation3 "⨁ "(...)", "r:(scoped f => DirectSum _ f) => r
 
 -- Porting note: The below recreates some of the lean3 notation, not fully yet
 -- section
chore: banish Type _ and Sort _ (#6499)

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

This has nice performance benefits.

Diff
@@ -173,7 +173,7 @@ protected theorem induction_on {C : (⨁ i, β i) → Prop} (x : ⨁ i, β i) (H
 
 /-- If two additive homomorphisms from `⨁ i, β i` are equal on each `of β i y`,
 then they are equal. -/
-theorem addHom_ext {γ : Type _} [AddMonoid γ] ⦃f g : (⨁ i, β i) →+ γ⦄
+theorem addHom_ext {γ : Type*} [AddMonoid γ] ⦃f g : (⨁ i, β i) →+ γ⦄
     (H : ∀ (i : ι) (y : β i), f (of _ i y) = g (of _ i y)) : f = g :=
   DFinsupp.addHom_ext H
 #align direct_sum.add_hom_ext DirectSum.addHom_ext
@@ -183,7 +183,7 @@ then they are equal.
 
 See note [partially-applied ext lemmas]. -/
 @[ext high]
-theorem addHom_ext' {γ : Type _} [AddMonoid γ] ⦃f g : (⨁ i, β i) →+ γ⦄
+theorem addHom_ext' {γ : Type*} [AddMonoid γ] ⦃f g : (⨁ i, β i) →+ γ⦄
     (H : ∀ i : ι, f.comp (of _ i) = g.comp (of _ i)) : f = g :=
   addHom_ext fun i => FunLike.congr_fun <| H i
 #align direct_sum.add_hom_ext' DirectSum.addHom_ext'
@@ -264,7 +264,7 @@ instance uniqueOfIsEmpty [IsEmpty ι] : Unique (⨁ i, β i) :=
 #align direct_sum.unique_of_is_empty DirectSum.uniqueOfIsEmpty
 
 /-- The natural equivalence between `⨁ _ : ι, M` and `M` when `Unique ι`. -/
-protected def id (M : Type v) (ι : Type _ := PUnit) [AddCommMonoid M] [Unique ι] :
+protected def id (M : Type v) (ι : Type* := PUnit) [AddCommMonoid M] [Unique ι] :
     (⨁ _ : ι, M) ≃+ M :=
   {
     DirectSum.toAddMonoid fun _ =>
@@ -281,7 +281,7 @@ protected def id (M : Type v) (ι : Type _ := PUnit) [AddCommMonoid M] [Unique 
 
 section CongrLeft
 
-variable {κ : Type _}
+variable {κ : Type*}
 
 /-- Reindexing terms of a direct sum.-/
 def equivCongrLeft (h : ι ≃ κ) : (⨁ i, β i) ≃+ ⨁ k, β (h.symm k) :=
@@ -357,19 +357,19 @@ end Sigma
 indexed by `ι`.
 
 When `S = Submodule _ M`, this is available as a `LinearMap`, `DirectSum.coe_linearMap`. -/
-protected def coeAddMonoidHom {M S : Type _} [DecidableEq ι] [AddCommMonoid M] [SetLike S M]
+protected def coeAddMonoidHom {M S : Type*} [DecidableEq ι] [AddCommMonoid M] [SetLike S M]
     [AddSubmonoidClass S M] (A : ι → S) : (⨁ i, A i) →+ M :=
   toAddMonoid fun i => AddSubmonoidClass.subtype (A i)
 #align direct_sum.coe_add_monoid_hom DirectSum.coeAddMonoidHom
 
 @[simp]
-theorem coeAddMonoidHom_of {M S : Type _} [DecidableEq ι] [AddCommMonoid M] [SetLike S M]
+theorem coeAddMonoidHom_of {M S : Type*} [DecidableEq ι] [AddCommMonoid M] [SetLike S M]
     [AddSubmonoidClass S M] (A : ι → S) (i : ι) (x : A i) :
     DirectSum.coeAddMonoidHom A (of (fun i => A i) i x) = x :=
   toAddMonoid_of _ _ _
 #align direct_sum.coe_add_monoid_hom_of DirectSum.coeAddMonoidHom_of
 
-theorem coe_of_apply {M S : Type _} [DecidableEq ι] [AddCommMonoid M] [SetLike S M]
+theorem coe_of_apply {M S : Type*} [DecidableEq ι] [AddCommMonoid M] [SetLike S M]
     [AddSubmonoidClass S M] {A : ι → S} (i j : ι) (x : A i) :
     (of (fun i ↦ {x // x ∈ A i}) i x j : M) = if i = j then x else 0 := by
   obtain rfl | h := Decidable.eq_or_ne i j
@@ -383,12 +383,12 @@ theorem coe_of_apply {M S : Type _} [DecidableEq ι] [AddCommMonoid M] [SetLike
 For the alternate statement in terms of independence and spanning, see
 `DirectSum.subgroup_isInternal_iff_independent_and_supr_eq_top` and
 `DirectSum.isInternalSubmodule_iff_independent_and_supr_eq_top`. -/
-def IsInternal {M S : Type _} [DecidableEq ι] [AddCommMonoid M] [SetLike S M]
+def IsInternal {M S : Type*} [DecidableEq ι] [AddCommMonoid M] [SetLike S M]
     [AddSubmonoidClass S M] (A : ι → S) : Prop :=
   Function.Bijective (DirectSum.coeAddMonoidHom A)
 #align direct_sum.is_internal DirectSum.IsInternal
 
-theorem IsInternal.addSubmonoid_iSup_eq_top {M : Type _} [DecidableEq ι] [AddCommMonoid M]
+theorem IsInternal.addSubmonoid_iSup_eq_top {M : Type*} [DecidableEq ι] [AddCommMonoid M]
     (A : ι → AddSubmonoid M) (h : IsInternal A) : iSup A = ⊤ := by
   rw [AddSubmonoid.iSup_eq_mrange_dfinsupp_sumAddHom, AddMonoidHom.mrange_top_iff_surjective]
   exact Function.Bijective.surjective h
feat: make Dfinsupp.sigmaCurry computable (#1947)

mathlib3 PR: https://github.com/leanprover-community/mathlib/pull/18316

Diff
@@ -316,17 +316,17 @@ section Sigma
 variable {α : ι → Type u} {δ : ∀ i, α i → Type w} [∀ i j, AddCommMonoid (δ i j)]
 
 /-- The natural map between `⨁ (i : Σ i, α i), δ i.1 i.2` and `⨁ i (j : α i), δ i j`.-/
-noncomputable def sigmaCurry : (⨁ i : Σ _i, _, δ i.1 i.2) →+ ⨁ (i) (j), δ i j
+def sigmaCurry : (⨁ i : Σ _i, _, δ i.1 i.2) →+ ⨁ (i) (j), δ i j
     where
-  toFun := @DFinsupp.sigmaCurry _ _ δ _
+  toFun := DFinsupp.sigmaCurry (δ := δ)
   map_zero' := DFinsupp.sigmaCurry_zero
-  map_add' f g := @DFinsupp.sigmaCurry_add _ _ δ _ f g
+  map_add' f g := DFinsupp.sigmaCurry_add f g
 #align direct_sum.sigma_curry DirectSum.sigmaCurry
 
 @[simp]
 theorem sigmaCurry_apply (f : ⨁ i : Σ _i, _, δ i.1 i.2) (i : ι) (j : α i) :
     sigmaCurry f i j = f ⟨i, j⟩ :=
-  @DFinsupp.sigmaCurry_apply _ _ δ _ _ i j
+  DFinsupp.sigmaCurry_apply (δ := δ) _ i j
 #align direct_sum.sigma_curry_apply DirectSum.sigmaCurry_apply
 
 /-- The natural map between `⨁ i (j : α i), δ i j` and `Π₀ (i : Σ i, α i), δ i.1 i.2`, inverse of
@@ -346,7 +346,7 @@ theorem sigmaUncurry_apply [∀ i, DecidableEq (α i)] [∀ i j, DecidableEq (δ
 #align direct_sum.sigma_uncurry_apply DirectSum.sigmaUncurry_apply
 
 /-- The natural map between `⨁ (i : Σ i, α i), δ i.1 i.2` and `⨁ i (j : α i), δ i j`.-/
-noncomputable def sigmaCurryEquiv [∀ i, DecidableEq (α i)] [∀ i j, DecidableEq (δ i j)] :
+def sigmaCurryEquiv [∀ i, DecidableEq (α i)] [∀ i j, DecidableEq (δ i j)] :
     (⨁ i : Σ _i, _, δ i.1 i.2) ≃+ ⨁ (i) (j), δ i j :=
   { sigmaCurry, DFinsupp.sigmaCurryEquiv with }
 #align direct_sum.sigma_curry_equiv DirectSum.sigmaCurryEquiv
chore: fix names (Add)SubmonoidClass.Subtype (#6374)
Diff
@@ -359,7 +359,7 @@ indexed by `ι`.
 When `S = Submodule _ M`, this is available as a `LinearMap`, `DirectSum.coe_linearMap`. -/
 protected def coeAddMonoidHom {M S : Type _} [DecidableEq ι] [AddCommMonoid M] [SetLike S M]
     [AddSubmonoidClass S M] (A : ι → S) : (⨁ i, A i) →+ M :=
-  toAddMonoid fun i => AddSubmonoidClass.Subtype (A i)
+  toAddMonoid fun i => AddSubmonoidClass.subtype (A i)
 #align direct_sum.coe_add_monoid_hom DirectSum.coeAddMonoidHom
 
 @[simp]
chore: silence deprecation warning in DirectSumIsInternal (#6416)

@eric-wieser, would you be able to find a better solution to this?

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

Diff
@@ -47,6 +47,9 @@ instance [∀ i, AddCommMonoid (β i)] : Inhabited (DirectSum ι β) :=
 instance [∀ i, AddCommMonoid (β i)] : AddCommMonoid (DirectSum ι β) :=
   inferInstanceAs (AddCommMonoid (Π₀ i, β i))
 
+instance [∀ i, AddCommMonoid (β i)] : FunLike (DirectSum ι β) _ fun i : ι => β i :=
+  inferInstanceAs (FunLike (Π₀ i, β i) _ _)
+
 instance [∀ i, AddCommMonoid (β i)] : CoeFun (DirectSum ι β) fun _ => ∀ i : ι, β i :=
   inferInstanceAs (CoeFun (Π₀ i, β i) fun _ => ∀ i : ι, β i)
 
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

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

Diff
@@ -2,15 +2,12 @@
 Copyright (c) 2019 Kenny Lau. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kenny Lau
-
-! This file was ported from Lean 3 source module algebra.direct_sum.basic
-! leanprover-community/mathlib commit f7fc89d5d5ff1db2d1242c7bb0e9062ce47ef47c
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Data.DFinsupp.Basic
 import Mathlib.GroupTheory.Submonoid.Operations
 
+#align_import algebra.direct_sum.basic from "leanprover-community/mathlib"@"f7fc89d5d5ff1db2d1242c7bb0e9062ce47ef47c"
+
 /-!
 # Direct sum
 
chore: rename Dfinsupp to DFinsupp (#5822)

See #4354

Diff
@@ -8,7 +8,7 @@ Authors: Kenny Lau
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
-import Mathlib.Data.Dfinsupp.Basic
+import Mathlib.Data.DFinsupp.Basic
 import Mathlib.GroupTheory.Submonoid.Operations
 
 /-!
@@ -112,61 +112,61 @@ variable (β)
 and has coefficient `x i` for `i` in `s`. -/
 def mk (s : Finset ι) : (∀ i : (↑s : Set ι), β i.1) →+ ⨁ i, β i
     where
-  toFun := Dfinsupp.mk s
-  map_add' _ _ := Dfinsupp.mk_add
-  map_zero' := Dfinsupp.mk_zero
+  toFun := DFinsupp.mk s
+  map_add' _ _ := DFinsupp.mk_add
+  map_zero' := DFinsupp.mk_zero
 #align direct_sum.mk DirectSum.mk
 
 /-- `of i` is the natural inclusion map from `β i` to `⨁ i, β i`. -/
 def of (i : ι) : β i →+ ⨁ i, β i :=
-  Dfinsupp.singleAddHom β i
+  DFinsupp.singleAddHom β i
 #align direct_sum.of DirectSum.of
 
 @[simp]
 theorem of_eq_same (i : ι) (x : β i) : (of _ i x) i = x :=
-  Dfinsupp.single_eq_same
+  DFinsupp.single_eq_same
 #align direct_sum.of_eq_same DirectSum.of_eq_same
 
 theorem of_eq_of_ne (i j : ι) (x : β i) (h : i ≠ j) : (of _ i x) j = 0 :=
-  Dfinsupp.single_eq_of_ne h
+  DFinsupp.single_eq_of_ne h
 #align direct_sum.of_eq_of_ne DirectSum.of_eq_of_ne
 
 @[simp]
 theorem support_zero [∀ (i : ι) (x : β i), Decidable (x ≠ 0)] : (0 : ⨁ i, β i).support = ∅ :=
-  Dfinsupp.support_zero
+  DFinsupp.support_zero
 #align direct_sum.support_zero DirectSum.support_zero
 
 @[simp]
 theorem support_of [∀ (i : ι) (x : β i), Decidable (x ≠ 0)] (i : ι) (x : β i) (h : x ≠ 0) :
     (of _ i x).support = {i} :=
-  Dfinsupp.support_single_ne_zero h
+  DFinsupp.support_single_ne_zero h
 #align direct_sum.support_of DirectSum.support_of
 
 theorem support_of_subset [∀ (i : ι) (x : β i), Decidable (x ≠ 0)] {i : ι} {b : β i} :
     (of _ i b).support ⊆ {i} :=
-  Dfinsupp.support_single_subset
+  DFinsupp.support_single_subset
 #align direct_sum.support_of_subset DirectSum.support_of_subset
 
 theorem sum_support_of [∀ (i : ι) (x : β i), Decidable (x ≠ 0)] (x : ⨁ i, β i) :
     (∑ i in x.support, of β i (x i)) = x :=
-  Dfinsupp.sum_single
+  DFinsupp.sum_single
 #align direct_sum.sum_support_of DirectSum.sum_support_of
 
 variable {β}
 
 theorem mk_injective (s : Finset ι) : Function.Injective (mk β s) :=
-  Dfinsupp.mk_injective s
+  DFinsupp.mk_injective s
 #align direct_sum.mk_injective DirectSum.mk_injective
 
 theorem of_injective (i : ι) : Function.Injective (of β i) :=
-  Dfinsupp.single_injective
+  DFinsupp.single_injective
 #align direct_sum.of_injective DirectSum.of_injective
 
 @[elab_as_elim]
 protected theorem induction_on {C : (⨁ i, β i) → Prop} (x : ⨁ i, β i) (H_zero : C 0)
     (H_basic : ∀ (i : ι) (x : β i), C (of β i x))
     (H_plus : ∀ x y, C x → C y → C (x + y)) : C x := by
-  apply Dfinsupp.induction x H_zero
+  apply DFinsupp.induction x H_zero
   intro i b f h1 h2 ih
   solve_by_elim
 #align direct_sum.induction_on DirectSum.induction_on
@@ -175,7 +175,7 @@ protected theorem induction_on {C : (⨁ i, β i) → Prop} (x : ⨁ i, β i) (H
 then they are equal. -/
 theorem addHom_ext {γ : Type _} [AddMonoid γ] ⦃f g : (⨁ i, β i) →+ γ⦄
     (H : ∀ (i : ι) (y : β i), f (of _ i y) = g (of _ i y)) : f = g :=
-  Dfinsupp.addHom_ext H
+  DFinsupp.addHom_ext H
 #align direct_sum.add_hom_ext DirectSum.addHom_ext
 
 /-- If two additive homomorphisms from `⨁ i, β i` are equal on each `of β i y`,
@@ -200,18 +200,18 @@ variable (φ : ∀ i, β i →+ γ) (ψ : (⨁ i, β i) →+ γ)
 /-- `toAddMonoid φ` is the natural homomorphism from `⨁ i, β i` to `γ`
 induced by a family `φ` of homomorphisms `β i → γ`. -/
 def toAddMonoid : (⨁ i, β i) →+ γ :=
-  Dfinsupp.liftAddHom (β := β) φ
+  DFinsupp.liftAddHom (β := β) φ
 #align direct_sum.to_add_monoid DirectSum.toAddMonoid
 
 @[simp]
 theorem toAddMonoid_of (i) (x : β i) : toAddMonoid φ (of β i x) = φ i x :=
-  Dfinsupp.liftAddHom_apply_single φ i x
+  DFinsupp.liftAddHom_apply_single φ i x
 #align direct_sum.to_add_monoid_of DirectSum.toAddMonoid_of
 
 theorem toAddMonoid.unique (f : ⨁ i, β i) : ψ f = toAddMonoid (fun i => ψ.comp (of β i)) f := by
   congr
   -- Porting note: ext applies addHom_ext' here, which isn't what we want.
-  apply Dfinsupp.addHom_ext'
+  apply DFinsupp.addHom_ext'
   simp [toAddMonoid, of]
 #align direct_sum.to_add_monoid.unique DirectSum.toAddMonoid.unique
 
@@ -255,12 +255,12 @@ variable {β}
 -- omit dec_ι
 
 instance unique [∀ i, Subsingleton (β i)] : Unique (⨁ i, β i) :=
-  Dfinsupp.unique
+  DFinsupp.unique
 #align direct_sum.unique DirectSum.unique
 
 /-- A direct sum over an empty type is trivial. -/
 instance uniqueOfIsEmpty [IsEmpty ι] : Unique (⨁ i, β i) :=
-  Dfinsupp.uniqueOfIsEmpty
+  DFinsupp.uniqueOfIsEmpty
 #align direct_sum.unique_of_is_empty DirectSum.uniqueOfIsEmpty
 
 /-- The natural equivalence between `⨁ _ : ι, M` and `M` when `Unique ι`. -/
@@ -285,13 +285,13 @@ variable {κ : Type _}
 
 /-- Reindexing terms of a direct sum.-/
 def equivCongrLeft (h : ι ≃ κ) : (⨁ i, β i) ≃+ ⨁ k, β (h.symm k) :=
-  { Dfinsupp.equivCongrLeft h with map_add' := Dfinsupp.comapDomain'_add _ h.right_inv}
+  { DFinsupp.equivCongrLeft h with map_add' := DFinsupp.comapDomain'_add _ h.right_inv}
 #align direct_sum.equiv_congr_left DirectSum.equivCongrLeft
 
 @[simp]
 theorem equivCongrLeft_apply (h : ι ≃ κ) (f : ⨁ i, β i) (k : κ) :
     equivCongrLeft h f k = f (h.symm k) := by
-  exact Dfinsupp.comapDomain'_apply _ h.right_inv _ _
+  exact DFinsupp.comapDomain'_apply _ h.right_inv _ _
 #align direct_sum.equiv_congr_left_apply DirectSum.equivCongrLeft_apply
 
 end CongrLeft
@@ -306,7 +306,7 @@ variable {α : Option ι → Type w} [∀ i, AddCommMonoid (α i)]
 /-- Isomorphism obtained by separating the term of index `none` of a direct sum over `Option ι`.-/
 @[simps]
 noncomputable def addEquivProdDirectSum : (⨁ i, α i) ≃+ α none × ⨁ i, α (some i) :=
-  { Dfinsupp.equivProdDfinsupp with map_add' := Dfinsupp.equivProdDfinsupp_add }
+  { DFinsupp.equivProdDFinsupp with map_add' := DFinsupp.equivProdDFinsupp_add }
 #align direct_sum.add_equiv_prod_direct_sum DirectSum.addEquivProdDirectSum
 
 end Option
@@ -318,15 +318,15 @@ variable {α : ι → Type u} {δ : ∀ i, α i → Type w} [∀ i j, AddCommMon
 /-- The natural map between `⨁ (i : Σ i, α i), δ i.1 i.2` and `⨁ i (j : α i), δ i j`.-/
 noncomputable def sigmaCurry : (⨁ i : Σ _i, _, δ i.1 i.2) →+ ⨁ (i) (j), δ i j
     where
-  toFun := @Dfinsupp.sigmaCurry _ _ δ _
-  map_zero' := Dfinsupp.sigmaCurry_zero
-  map_add' f g := @Dfinsupp.sigmaCurry_add _ _ δ _ f g
+  toFun := @DFinsupp.sigmaCurry _ _ δ _
+  map_zero' := DFinsupp.sigmaCurry_zero
+  map_add' f g := @DFinsupp.sigmaCurry_add _ _ δ _ f g
 #align direct_sum.sigma_curry DirectSum.sigmaCurry
 
 @[simp]
 theorem sigmaCurry_apply (f : ⨁ i : Σ _i, _, δ i.1 i.2) (i : ι) (j : α i) :
     sigmaCurry f i j = f ⟨i, j⟩ :=
-  @Dfinsupp.sigmaCurry_apply _ _ δ _ _ i j
+  @DFinsupp.sigmaCurry_apply _ _ δ _ _ i j
 #align direct_sum.sigma_curry_apply DirectSum.sigmaCurry_apply
 
 /-- The natural map between `⨁ i (j : α i), δ i j` and `Π₀ (i : Σ i, α i), δ i.1 i.2`, inverse of
@@ -334,21 +334,21 @@ theorem sigmaCurry_apply (f : ⨁ i : Σ _i, _, δ i.1 i.2) (i : ι) (j : α i)
 def sigmaUncurry [∀ i, DecidableEq (α i)] [∀ i j, DecidableEq (δ i j)] :
     (⨁ (i) (j), δ i j) →+ ⨁ i : Σ _i, _, δ i.1 i.2
     where
-  toFun := Dfinsupp.sigmaUncurry
-  map_zero' := Dfinsupp.sigmaUncurry_zero
-  map_add' := Dfinsupp.sigmaUncurry_add
+  toFun := DFinsupp.sigmaUncurry
+  map_zero' := DFinsupp.sigmaUncurry_zero
+  map_add' := DFinsupp.sigmaUncurry_add
 #align direct_sum.sigma_uncurry DirectSum.sigmaUncurry
 
 @[simp]
 theorem sigmaUncurry_apply [∀ i, DecidableEq (α i)] [∀ i j, DecidableEq (δ i j)]
     (f : ⨁ (i) (j), δ i j) (i : ι) (j : α i) : sigmaUncurry f ⟨i, j⟩ = f i j :=
-  Dfinsupp.sigmaUncurry_apply f i j
+  DFinsupp.sigmaUncurry_apply f i j
 #align direct_sum.sigma_uncurry_apply DirectSum.sigmaUncurry_apply
 
 /-- The natural map between `⨁ (i : Σ i, α i), δ i.1 i.2` and `⨁ i (j : α i), δ i j`.-/
 noncomputable def sigmaCurryEquiv [∀ i, DecidableEq (α i)] [∀ i j, DecidableEq (δ i j)] :
     (⨁ i : Σ _i, _, δ i.1 i.2) ≃+ ⨁ (i) (j), δ i j :=
-  { sigmaCurry, Dfinsupp.sigmaCurryEquiv with }
+  { sigmaCurry, DFinsupp.sigmaCurryEquiv with }
 #align direct_sum.sigma_curry_equiv DirectSum.sigmaCurryEquiv
 
 end Sigma
chore: cleanup of some ext porting notes (#5176)

Co-authored-by: Scott Morrison <scott.morrison@anu.edu.au>

Diff
@@ -38,6 +38,7 @@ Note: `open DirectSum` will enable the notation `⨁ i, β i` for `DirectSum β`
 def DirectSum [∀ i, AddCommMonoid (β i)] : Type _ :=
   -- Porting note: Failed to synthesize
   -- Π₀ i, β i deriving AddCommMonoid, Inhabited
+  -- See https://github.com/leanprover-community/mathlib4/issues/5020
   Π₀ i, β i
 #align direct_sum DirectSum
 
@@ -209,7 +210,7 @@ theorem toAddMonoid_of (i) (x : β i) : toAddMonoid φ (of β i x) = φ i x :=
 
 theorem toAddMonoid.unique (f : ⨁ i, β i) : ψ f = toAddMonoid (fun i => ψ.comp (of β i)) f := by
   congr
-  -- Porting note: ext applied unsuitable ext lemma
+  -- Porting note: ext applies addHom_ext' here, which isn't what we want.
   apply Dfinsupp.addHom_ext'
   simp [toAddMonoid, of]
 #align direct_sum.to_add_monoid.unique DirectSum.toAddMonoid.unique
style: allow _ for an argument in notation3 & replace _foo with _ in notation3 (#4652)
Diff
@@ -264,7 +264,7 @@ instance uniqueOfIsEmpty [IsEmpty ι] : Unique (⨁ i, β i) :=
 
 /-- The natural equivalence between `⨁ _ : ι, M` and `M` when `Unique ι`. -/
 protected def id (M : Type v) (ι : Type _ := PUnit) [AddCommMonoid M] [Unique ι] :
-    (⨁ _x : ι, M) ≃+ M :=
+    (⨁ _ : ι, M) ≃+ M :=
   {
     DirectSum.toAddMonoid fun _ =>
       AddMonoidHom.id
fix: spacing and indentation in tactic formatters (#4519)

This fixes a bunch of spacing bugs in tactics. Mathlib counterpart of:

Diff
@@ -56,7 +56,7 @@ instance [∀ i, AddCommMonoid (β i)] : CoeFun (DirectSum ι β) fun _ => ∀ i
 -- scoped[DirectSum]
 /-- `⨁ i, f i` is notation for `DirectSum _ f` and equals the direct sum of `fun i ↦ f i`.
 Taking the direct sum over multiple arguments is possible, e.g. `⨁ (i) (j), f i j`. -/
-notation3"⨁ "(...)", "r:(scoped f => DirectSum _ f) => r
+notation3 "⨁ "(...)", "r:(scoped f => DirectSum _ f) => r
 
 -- Porting note: The below recreates some of the lean3 notation, not fully yet
 -- section
feat: add compile_inductive% and compile_def% commands (#4097)

Add a #compile inductive command to compile the recursors of an inductive type, which works by creating a recursive definition and using @[csimp].

Co-authored-by: Parth Shastri <31370288+cppio@users.noreply.github.com> Co-authored-by: Mario Carneiro <di.gama@gmail.com>

Diff
@@ -328,10 +328,9 @@ theorem sigmaCurry_apply (f : ⨁ i : Σ _i, _, δ i.1 i.2) (i : ι) (j : α i)
   @Dfinsupp.sigmaCurry_apply _ _ δ _ _ i j
 #align direct_sum.sigma_curry_apply DirectSum.sigmaCurry_apply
 
--- Porting note: marked noncomputable
 /-- The natural map between `⨁ i (j : α i), δ i j` and `Π₀ (i : Σ i, α i), δ i.1 i.2`, inverse of
 `curry`.-/
-noncomputable def sigmaUncurry [∀ i, DecidableEq (α i)] [∀ i j, DecidableEq (δ i j)] :
+def sigmaUncurry [∀ i, DecidableEq (α i)] [∀ i j, DecidableEq (δ i j)] :
     (⨁ (i) (j), δ i j) →+ ⨁ i : Σ _i, _, δ i.1 i.2
     where
   toFun := Dfinsupp.sigmaUncurry
feat: add Mathlib.Tactic.Common, and import (#4056)

This makes a mathlib4 version of mathlib3's tactic.basic, now called Mathlib.Tactic.Common, which imports all tactics which do not have significant theory requirements, and then is imported all across the base of the hierarchy.

This ensures that all common tactics are available nearly everywhere in the library, rather than having to be imported one-by-one as you need them.

Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -10,7 +10,6 @@ Authors: Kenny Lau
 -/
 import Mathlib.Data.Dfinsupp.Basic
 import Mathlib.GroupTheory.Submonoid.Operations
-import Mathlib.Tactic.ScopedNS
 
 /-!
 # Direct sum
feat: port Algebra.DirectSum.Algebra (#4049)

Deletes a section that was always content-free, as well as a reference to code that was removed in leanprover-community/mathlib#10127.

Diff
@@ -182,7 +182,7 @@ theorem addHom_ext {γ : Type _} [AddMonoid γ] ⦃f g : (⨁ i, β i) →+ γ
 then they are equal.
 
 See note [partially-applied ext lemmas]. -/
-@[ext]
+@[ext high]
 theorem addHom_ext' {γ : Type _} [AddMonoid γ] ⦃f g : (⨁ i, β i) →+ γ⦄
     (H : ∀ i : ι, f.comp (of _ i) = g.comp (of _ i)) : f = g :=
   addHom_ext fun i => FunLike.congr_fun <| H i
chore: reenable eta, bump to nightly 2023-05-16 (#3414)

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

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

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

Diff
@@ -389,8 +389,6 @@ def IsInternal {M S : Type _} [DecidableEq ι] [AddCommMonoid M] [SetLike S M]
   Function.Bijective (DirectSum.coeAddMonoidHom A)
 #align direct_sum.is_internal DirectSum.IsInternal
 
--- Porting note: This times out; lean4#2003 may fix this?
-set_option maxHeartbeats 0
 theorem IsInternal.addSubmonoid_iSup_eq_top {M : Type _} [DecidableEq ι] [AddCommMonoid M]
     (A : ι → AddSubmonoid M) (h : IsInternal A) : iSup A = ⊤ := by
   rw [AddSubmonoid.iSup_eq_mrange_dfinsupp_sumAddHom, AddMonoidHom.mrange_top_iff_surjective]
chore: Rename to sSup/iSup (#3938)

As discussed on Zulip

Renames

  • supₛsSup
  • infₛsInf
  • supᵢiSup
  • infᵢiInf
  • bsupₛbsSup
  • binfₛbsInf
  • bsupᵢbiSup
  • binfᵢbiInf
  • csupₛcsSup
  • cinfₛcsInf
  • csupᵢciSup
  • cinfᵢciInf
  • unionₛsUnion
  • interₛsInter
  • unionᵢiUnion
  • interᵢiInter
  • bunionₛbsUnion
  • binterₛbsInter
  • bunionᵢbiUnion
  • binterᵢbiInter

Co-authored-by: Parcly Taxel <reddeloostw@gmail.com>

Diff
@@ -391,10 +391,10 @@ def IsInternal {M S : Type _} [DecidableEq ι] [AddCommMonoid M] [SetLike S M]
 
 -- Porting note: This times out; lean4#2003 may fix this?
 set_option maxHeartbeats 0
-theorem IsInternal.addSubmonoid_supᵢ_eq_top {M : Type _} [DecidableEq ι] [AddCommMonoid M]
-    (A : ι → AddSubmonoid M) (h : IsInternal A) : supᵢ A = ⊤ := by
-  rw [AddSubmonoid.supᵢ_eq_mrange_dfinsupp_sumAddHom, AddMonoidHom.mrange_top_iff_surjective]
+theorem IsInternal.addSubmonoid_iSup_eq_top {M : Type _} [DecidableEq ι] [AddCommMonoid M]
+    (A : ι → AddSubmonoid M) (h : IsInternal A) : iSup A = ⊤ := by
+  rw [AddSubmonoid.iSup_eq_mrange_dfinsupp_sumAddHom, AddMonoidHom.mrange_top_iff_surjective]
   exact Function.Bijective.surjective h
-#align direct_sum.is_internal.add_submonoid_supr_eq_top DirectSum.IsInternal.addSubmonoid_supᵢ_eq_top
+#align direct_sum.is_internal.add_submonoid_supr_eq_top DirectSum.IsInternal.addSubmonoid_iSup_eq_top
 
 end DirectSum
chore: bye-bye, solo bys! (#3825)

This PR puts, with one exception, every single remaining by that lies all by itself on its own line to the previous line, thus matching the current behaviour of start-port.sh. The exception is when the by begins the second or later argument to a tuple or anonymous constructor; see https://github.com/leanprover-community/mathlib4/pull/3825#discussion_r1186702599.

Essentially this is s/\n *by$/ by/g, but with manual editing to satisfy the linter's max-100-char-line requirement. The Python style linter is also modified to catch these "isolated bys".

Diff
@@ -164,8 +164,8 @@ theorem of_injective (i : ι) : Function.Injective (of β i) :=
 
 @[elab_as_elim]
 protected theorem induction_on {C : (⨁ i, β i) → Prop} (x : ⨁ i, β i) (H_zero : C 0)
-    (H_basic : ∀ (i : ι) (x : β i), C (of β i x)) (H_plus : ∀ x y, C x → C y → C (x + y)) : C x :=
-  by
+    (H_basic : ∀ (i : ι) (x : β i), C (of β i x))
+    (H_plus : ∀ x y, C x → C y → C (x + y)) : C x := by
   apply Dfinsupp.induction x H_zero
   intro i b f h1 h2 ih
   solve_by_elim
chore: fix #align lines (#3640)

This PR fixes two things:

  • Most align statements for definitions and theorems and instances that are separated by two newlines from the relevant declaration (s/\n\n#align/\n#align). This is often seen in the mathport output after ending calc blocks.
  • All remaining more-than-one-line #align statements. (This was needed for a script I wrote for #3630.)
Diff
@@ -213,7 +213,6 @@ theorem toAddMonoid.unique (f : ⨁ i, β i) : ψ f = toAddMonoid (fun i => ψ.c
   -- Porting note: ext applied unsuitable ext lemma
   apply Dfinsupp.addHom_ext'
   simp [toAddMonoid, of]
-
 #align direct_sum.to_add_monoid.unique DirectSum.toAddMonoid.unique
 
 end ToAddMonoid
chore: tidy various files (#2742)
Diff
@@ -20,7 +20,7 @@ This file defines the direct sum of abelian groups, indexed by a discrete type.
 ## Notation
 
 `⨁ i, β i` is the n-ary direct sum `DirectSum`.
-This notation is in the `DirectSum` locale, accessible after `open_locale DirectSum`.
+This notation is in the `DirectSum` locale, accessible after `open DirectSum`.
 
 ## References
 
@@ -35,7 +35,7 @@ variable (ι : Type v) [dec_ι : DecidableEq ι] (β : ι → Type w)
 
 /-- `DirectSum β` is the direct sum of a family of additive commutative monoids `β i`.
 
-Note: `open_locale DirectSum` will enable the notation `⨁ i, β i` for `DirectSum β`. -/
+Note: `open DirectSum` will enable the notation `⨁ i, β i` for `DirectSum β`. -/
 def DirectSum [∀ i, AddCommMonoid (β i)] : Type _ :=
   -- Porting note: Failed to synthesize
   -- Π₀ i, β i deriving AddCommMonoid, Inhabited
feat: port Data.Dfinsupp.Multiset (#2345)

Co-authored-by: Lukas Miaskiwskyi <lukas.mias@gmail.com>

Diff
@@ -175,7 +175,7 @@ protected theorem induction_on {C : (⨁ i, β i) → Prop} (x : ⨁ i, β i) (H
 then they are equal. -/
 theorem addHom_ext {γ : Type _} [AddMonoid γ] ⦃f g : (⨁ i, β i) →+ γ⦄
     (H : ∀ (i : ι) (y : β i), f (of _ i y) = g (of _ i y)) : f = g :=
-  Dfinsupp.add_hom_ext H
+  Dfinsupp.addHom_ext H
 #align direct_sum.add_hom_ext DirectSum.addHom_ext
 
 /-- If two additive homomorphisms from `⨁ i, β i` are equal on each `of β i y`,
@@ -211,7 +211,7 @@ theorem toAddMonoid_of (i) (x : β i) : toAddMonoid φ (of β i x) = φ i x :=
 theorem toAddMonoid.unique (f : ⨁ i, β i) : ψ f = toAddMonoid (fun i => ψ.comp (of β i)) f := by
   congr
   -- Porting note: ext applied unsuitable ext lemma
-  apply Dfinsupp.add_hom_ext'
+  apply Dfinsupp.addHom_ext'
   simp [toAddMonoid, of]
 
 #align direct_sum.to_add_monoid.unique DirectSum.toAddMonoid.unique
@@ -399,5 +399,3 @@ theorem IsInternal.addSubmonoid_supᵢ_eq_top {M : Type _} [DecidableEq ι] [Add
 #align direct_sum.is_internal.add_submonoid_supr_eq_top DirectSum.IsInternal.addSubmonoid_supᵢ_eq_top
 
 end DirectSum
-
-#lint
chore: use inferInstanceAs (#2074)

Drop

  • by delta mydef; infer_instance. This generates id _ in the proof.

  • show _, by infer_instance. This generates let in let; not sure if it's bad for defeq but a reducible inferInstanceAs should not be worse.

Diff
@@ -44,14 +44,14 @@ def DirectSum [∀ i, AddCommMonoid (β i)] : Type _ :=
 
 -- Porting note: Added inhabited instance manually
 instance [∀ i, AddCommMonoid (β i)] : Inhabited (DirectSum ι β) :=
-  by delta DirectSum; infer_instance
+  inferInstanceAs (Inhabited (Π₀ i, β i))
 
 -- Porting note: Added addCommMonoid instance manually
 instance [∀ i, AddCommMonoid (β i)] : AddCommMonoid (DirectSum ι β) :=
-  by delta DirectSum; infer_instance
+  inferInstanceAs (AddCommMonoid (Π₀ i, β i))
 
 instance [∀ i, AddCommMonoid (β i)] : CoeFun (DirectSum ι β) fun _ => ∀ i : ι, β i :=
-  by delta DirectSum; infer_instance
+  inferInstanceAs (CoeFun (Π₀ i, β i) fun _ => ∀ i : ι, β i)
 
 -- Porting note: scoped does not work with notation3; TODO rewrite as lean4 notation?
 -- scoped[DirectSum]
@@ -79,7 +79,7 @@ section AddCommGroup
 variable [∀ i, AddCommGroup (β i)]
 
 instance : AddCommGroup (DirectSum ι β) :=
-  by delta DirectSum; infer_instance
+  inferInstanceAs (AddCommGroup (Π₀ i, β i))
 variable {β}
 
 @[simp]
chore: scoped BigOperators notation (#1952)
Diff
@@ -27,8 +27,7 @@ This notation is in the `DirectSum` locale, accessible after `open_locale Direct
 * https://en.wikipedia.org/wiki/Direct_sum
 -/
 
--- Porting note: Unknown namespace
--- open BigOperators
+open BigOperators
 
 universe u v w u₁
 
feat: port Algebra.DirectSum.Basic (#1923)

Needed to add some instance names in Dfinnsup/Basic because the standard ones were insanely long. Could extract that to a separate PR, but maybe that's not needed.

Co-authored-by: ChrisHughes24 <chrishughes24@gmail.com>

Dependencies 8 + 283

284 files ported (97.3%)
118414 lines ported (97.4%)
Show graph

The unported dependencies are